JPA实体:从Oracle DATE列获取小时,分钟和秒

我有问题从Oracle DB获取完整的DATE信息(dd / mm / yyyy hh / mm / ss)。

在db级别中,在我想要接收的列中,我设置了测试值:

update my_table set my_date_column=(to_date('2011-06-15 15:43:12', 'yyyy-mm-dd hh24:mi:ss')); 

但在我的JPA实体中,我有:

 @Column(name = "MY_DATE_COLUMN") @Temporal(TemporalType.DATE) private Date dateDetailed; public Date getDateDetailed() { if (this.dateDetailed!= null) { return this.dateDetailed; } return null; } public void setDateDetailed(Date dateDetailed) { if (dateDetailed!= null) { this.dateDetailed= dateDetailed; } else { this.dateDetailed= null; } } 

每当我接触到我的物体时,它就会给我一个没有时间,分钟和秒的日期。

我试图使用TemporalType.TIMESTAMP,但在这种情况下我还需要更改db中的列类型(我想避免)。

有什么建议么?

它的TemporalType.DATE你需要TIME或TIMESTAMP。 DATE只是没有时间的日期。 TIMESTAMP表示为数字。

通过使用TIMESTAMP临时类型,您将获得java date数据类型的日期和时间部分,但Oracle将生成具有TIMESTAMP数据类型的列。 要解决此问题,如果需要DATE数据类型,可以使用列注释的columnDefinition参数,例如:

 @Column(name = "MY_DATE_COLUMN", columnDefinition = "DATE") @Temporal(TemporalType.TIMESTAMP) private Date dateDetailed;