JPA中的日期到日期时间转换



我看到存储在Oracle DB中的值为19-JAN-13。当我得到结果通过:

List list1 = getEntityManager().createQuery(query).getResultList()

我看到的值是2013-01-19 07:03:49.0,而不是2013-01-19 00:00:00.02013-01-19 23:59:59.9

我想知道为什么会这样?date到datetime的转换不应该默认时间为零吗?该行创建于2013年1月1日07:03:49.0时间。

访问器定义为
@Column(name = "FREE_TRIAL_EXPIRY_DATE")
public Date getFreeTrialExpiryDate() {
    return freeTrialExpiryDate;
}
public void setFreeTrialExpiryDate(Date freeTrialExpiryDate) {
    this.freeTrialExpiryDate = freeTrialExpiryDate;
}

实际上,Oracle Date类型存储的是日期和时间的值。您的Oracle工具碰巧只显示日期DD-MM-YYYY值。

您只需在Java应用程序中正确输出格式,即可获得所需的DD-MM-YYYY表示。

Oracle总是保持时间,这就是它的方式。Oracle的'DATE'包含时间到秒,它不等同于无时间的java.sql.Date.

如果您希望字段是一个无时间日期,那么您需要在应用程序级别通过注释

来指定截断

@Temporal(TemporalType.DATE)

相关内容

  • 没有找到相关文章

最新更新