我在mysql中的列类型为datetime

我用休眠
    @Temporal(TemporalType.TIMESTAMP)
    私有java.sql.Timestamp lastExpressTime;

@Temporal(TemporalType.TIMESTAMP)
private java.util.Date lastExpressTime;

@Temporal(TemporalType.DATE)
private java.sql.Date lastExpressTime;


两者之间有什么区别吗?

datetime应该映射什么样的TemporalType?

我找到参考Table 5.2 MySQL Types to Java Types for ResultSet.getObject()
datetime应该映射时间戳吗?

谢谢您的任何帮助和建议

最佳答案

使用TemporalType.TIMESTAMP,当您对数据库进行持久化/读取操作时,日期和时间都将得到持久化/读取。

使用lastExpressTime,当您将TemporalType.DATE持久化到数据库中或从数据库中读取时,仅日期将被持久化/读取,并且日期的时间部分将被设置为全零。

不确定此行为是否对所有数据库都相同,最好是在自己的测试中进行检查。

09-09 22:31