gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 22:08:55 25 4
gpt4 key购买 nike

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

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

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

我正在使用 Hibernate 3.x 库。

最佳答案

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

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

当然,行为是 sufficiently defined ,也关于 TIMESTAMP and NULL values ,但它仍然令人困惑。我停止使用许多 MySQL 自动功能,例如。 G。因为稍后还有其他人要处理代码和表格。

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

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

关于java - Hibernate 将 NULL 时间戳解释为当前日期/时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31884685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com