当前位置: 代码迷 >> java >> Hibernate将NULL时间戳解释为当前日期/时间
  详细解决方案

Hibernate将NULL时间戳解释为当前日期/时间

热度:102   发布时间:2023-07-26 14:12:31.0

我有一个MySQL数据库表,其中有一列称为expirationDate,该列定义为默认为NULL的时间戳。 我有一种方法可以从表中提取符合各种条件的所有记录,然后将每个记录的列值打印为调试例程的一部分。

在查看返回的记录时,我注意到数据库中具有expirationDate为NULL的记录将被返回到我的程序中,并且expirationDate设置为当前日期/时间。

这是正常行为吗? 如果是这样,它是否可配置(我希望该值保持为NULL)?

我正在使用Hibernate 3.x库。

不是Hibernate将null值转换为当前时间戳,而是MySQL。 至少那是最可能的原因。 TIMESTAMP列的行为取决于多个参数:

  • 它是否是表中的第一个TIMESTAMP列(适用不同的默认值)
  • 表引擎(MyISAM或InnoDB)
  • 配置( 设置)
  • 您的MySQL版本

当然,对于 ,行为已被 ,但仍然令人困惑。 我停止使用许多MySQL自动功能,例如,因为以后会有其他人需要处理代码和表。

您应该使用MySQL命令行客户端或PMA检查表中的值以及CREATE TABLE的输出。 您的表中是否null值?

如果您的表是由Hibernate 3创建的,则生成的DDL语句也可能是错误的(请参阅 )。

  相关解决方案