powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JPA 2.0 encapsulation of @Temporal data types
11 сообщений из 11, страница 1 из 1
JPA 2.0 encapsulation of @Temporal data types
    #38036238
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

В Java классы java.util.Date, java.util.Calendar, java.sql.Date, java.sql.Time, java.sql.Timestamp являются мутирующими.

По моему опыту работы с JPA 2.0 использовался Calendar с отдельным @Transient гетом чтобы получить Date или что-то иное.

Какие есть best practices для работы с мутирующей датой/временем в @Entity?

Спасибо заранее
Хорошего дня!
...
Рейтинг: 0 / 0
JPA 2.0 encapsulation of @Temporal data types
    #38036244
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriycheПо моему опыту работы с JPA 2.0 использовался Calendar с отдельным @Transient гетом чтобы получить Date или что-то иное.зачем?
...
Рейтинг: 0 / 0
JPA 2.0 encapsulation of @Temporal data types
    #38036253
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grasoff.net,

чтобы не давать прямой доступ к инстансу Сalendar.

У Вас есть алетернативные варианты?
Спасибо за них.
...
Рейтинг: 0 / 0
JPA 2.0 encapsulation of @Temporal data types
    #38036263
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriyche,
чтобы не давать прямой доступ к инстансу Сalendar.
не давайте, в геттере возвращайте новый экземпляр даты.
...
Рейтинг: 0 / 0
JPA 2.0 encapsulation of @Temporal data types
    #38036368
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Внесу немного ясности и приведу пример из моей практики.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
// imports omitted 

@Entity
@Access(AccessType.PROPERTY)
public class MyEntity {
    private Integer id;

    @Access(AccessType.FIELD)
    private Calendar createdAt;

    public MyEntity() {
        createdAt = Calendar.getInstance();
    }

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    @Transient
    public Date getCreatedAt() {
        return createdAt.getTime();
    }

    public void setCreatedAt(Date createdAt) {
        this.createdAt.setTime(createdAt);
    }

}



Есть ли альтернативы?
Спасибо.
...
Рейтинг: 0 / 0
JPA 2.0 encapsulation of @Temporal data types
    #38036373
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriycheВнесу немного ясности и приведу пример из моей практики.
Ну, и нафиг такое счастье? Клиентскому коду, чаще всего нужен именно Calendar для вычислений. А ORM, в целом, пофиг. Хотя как раз Date иногда рекомендуют использовать для переноса данных. Поэтому что даёт ваш подход не понятно совсем.
...
Рейтинг: 0 / 0
JPA 2.0 encapsulation of @Temporal data types
    #38036377
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriychegrasoff.net,

чтобы не давать прямой доступ к инстансу Сalendar.

У Вас есть алетернативные варианты?
Спасибо за них.так зачем такое вообще? я не понимаю

есть в таблице поле b_date date, и есть класс с полем @Temporal(..) @Column(b_date) Date bDate

и зачем всё, что выше тобой написано?
...
Рейтинг: 0 / 0
JPA 2.0 encapsulation of @Temporal data types
    #38036382
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriycheВнесу немного ясности и приведу пример из моей практики.а что решает этот пример с точки зрения базы в целом?
...
Рейтинг: 0 / 0
JPA 2.0 encapsulation of @Temporal data types
    #38036388
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapeckerdmitriyche,
чтобы не давать прямой доступ к инстансу Сalendar.
не давайте, в геттере возвращайте новый экземпляр даты.
+1
Есть ещё масса вариантов. Можно унести часть логики работы с датой из внешнего кода в этот класс. И возвращать только конкретные значения, нужные для внешней логики.
...
Рейтинг: 0 / 0
JPA 2.0 encapsulation of @Temporal data types
    #38036447
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grasoff.netdmitriycheВнесу немного ясности и приведу пример из моей практики.а что решает этот пример с точки зрения базы в целом?

Точка зрения базы данных в данном вопросе не рассматривается.
...
Рейтинг: 0 / 0
JPA 2.0 encapsulation of @Temporal data types
    #38036451
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz...
Есть ещё масса вариантов. Можно унести часть логики работы с датой из внешнего кода в этот класс. И возвращать только конкретные значения, нужные для внешней логики.

Предположим, что в данный момент ещё неизвестно какая логика работы с датой будет применена для с данным классом.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JPA 2.0 encapsulation of @Temporal data types
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]