mysql - hibernate TemporalType,日期时间列映射

标签 mysql hibernate

我在mysql中的列类型是datetime

我使用 hibernate @Temporal(TemporalType.TIMESTAMP) 私有(private) 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,当您将lastExpressTime持久保存到数据库或从数据库读取lastExpressTime时,只会保存/读取日期,并且日期的时间部分将设置为全为零。

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

关于mysql - hibernate TemporalType,日期时间列映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26924488/

相关文章:

mysql - Rails 尝试插入时找不到用户记录

hibernate - org.hibernate.exception.GenericJDBCException : could not get next sequence value

java - 如何从对象中提取数据?

java - Hibernate Search 能否通过用户可访问性限制结果?

mysql - 仅当结果 Django 的字段为 null 时才返回结果

javascript - 更改时重新生成下拉选项

java - 构造函数 Autowiring 调用三次(Spring 5)

java - hibernate + "ON DUPLICATE KEY"逻辑

mysql - 在mysql中显示行号

mysql - 更改列中的所有值 mysql php 4.4.9