【问题标题】:Using hibernate UPDATE column of type "datetime" for mysql为mysql使用“datetime”类型的休眠更新列
【发布时间】:2014-04-01 20:29:29
【问题描述】:

我正在使用 Hibernate 进行 ORM 映射。其中一个表具有“日期时间”类型的列。有问题的列需要使用“当前时间”(数据插入时间)进行更新。我知道我可以使用 date() 函数作为默认值。当我设置对象的其他属性时,我宁愿设置时间戳。

问题 1) Java中SQL date()函数的等价物是什么?

【问题讨论】:

    标签: mysql hibernate datetime orm


    【解决方案1】:

    java中SQLdate()的等价物就是new Date(),例如:

    myEntity.setDateField(new Date());
    

    dateField 设置为当前日期和时间。

    【讨论】:

      【解决方案2】:

      使用 mysql,您可以设置更新更改: http://dev.mysql.com/doc/refman/5.0/en/timestamp-initialization.html

      CREATE TABLE t1 (
        ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
      );
      

      属性将使用数据库的当前时间戳进行更新。

      (你很幸运,因为它不适用于 oracle ...(而我使用 oracle ...))

      【讨论】:

      • 谢谢。这对我有用。但如果时间戳不是“当前”时间戳?
      • 不客气 如果日期不同,您必须在实体中设置日期,并使用休眠映射列。 (与任何其他领域一样)
      【解决方案3】:

      我正在尝试我的代码:

      myEntity.setdDateCreated(new Date());

      在休眠映射中->

      property name="dateCreated" column="date_created" type="timestamp"

      但在 mysql 中它保存为 '0000-00-00 00:00:00'

      你猜为什么会这样?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-08-31
        • 1970-01-01
        • 1970-01-01
        • 2014-12-02
        • 1970-01-01
        • 2018-09-02
        • 1970-01-01
        相关资源
        最近更新 更多