С таблицей, составленной с помощью этого 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
?
Пробовали ли вы изменить значение @Temporal
на TemporalType.DATETIME
? java.util.Date и java.sql.Date оба хранят компоненты даты и времени, TemporalType контролирует, какую часть JPA хранит/обращает внимание на дату, время или оба.
Если вы хотите также хранить информацию о времени на уровне базы данных, используйте TemporalType.DATETIME
:
@Column(name = "XDATE")
@Temporal(TemporalType.DATETIME)
private Date xDate; //java.util.Date
Используйте столбец TIMESTAMP
введите на уровне базы данных (и xDate
будет сохранен как 'yyyy-MM-dd HH: mm: ss.S'
).