Java: классы JPA, осуществляющие рефакторинг от Даты до DateTime

С таблицей, составленной с помощью этого SQL

Create Table X (
    ID varchar(4) Not Null,
    XDATE date
);

и класс объекта, определенный как так

@Entity
@Table(name = "X")
public class X implements Serializable {
    @Id
    @Basic(optional = false)
    @Column(name = "ID", nullable = false, length = 4)
    private String id;
    @Column(name = "XDATE")
    @Temporal(TemporalType.DATE)
    private Date xDate; //java.util.Date
    ...
}

С вышеупомянутым я могу использовать JPA для достижения объектного реляционного отображения. Однако xDate атрибут может только сохранить даты, например. dd/MM/yyyy.

Как я осуществляю рефакторинг вышеупомянутое для хранения полного объекта даты, использующего всего одно поле, т.е. dd/MM/yyyy HH24:mm?

5
задан bguiz 26 May 2010 в 14:14
поделиться

2 ответа

Пробовали ли вы изменить значение @Temporal на TemporalType.DATETIME? java.util.Date и java.sql.Date оба хранят компоненты даты и времени, TemporalType контролирует, какую часть JPA хранит/обращает внимание на дату, время или оба.

4
ответ дан 13 December 2019 в 19:22
поделиться

Если вы хотите также хранить информацию о времени на уровне базы данных, используйте TemporalType.DATETIME :

@Column(name = "XDATE")
@Temporal(TemporalType.DATETIME)
private Date xDate; //java.util.Date

Используйте столбец TIMESTAMP введите на уровне базы данных (и xDate будет сохранен как 'yyyy-MM-dd HH: mm: ss.S' ).

7
ответ дан 13 December 2019 в 19:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: