【问题标题】:Saving a property of an Hibernate entity with the value from a database function使用来自数据库函数的值保存 Hibernate 实体的属性
【发布时间】:2014-05-20 21:21:52
【问题描述】:

我有一个 Hibernate 实体,它有一个 java.util.Date 属性。我不想在我的实体上将属性值设置为 new Date() 然后使用 Hibernate 保存,而是想让数据库通过 SYSDATE() 函数设置日期。我想要这个,因为我不能依赖客户设置的日期,因为它是一个摇摆应用程序。我只能相信从数据库中花费的时间。

我已经想到了一些选择,但似乎都很糟糕:

  • 向数据库询问当前时间,将其设置在我的对象上,然后保存。 (昂贵)
  • 创建 Hibernate 插入语句并手动传递参数。 (颠覆了Hibernate的目的)

【问题讨论】:

    标签: java database hibernate orm hibernate-mapping


    【解决方案1】:

    Hibernate 允许您拥有 DB 生成的列,请查看 Generated properties Hibernate 文档。

    您的数据库应该有一个 DEFAULT SYSDATE 配置。

    查看this example 以获得完整的解决方案。

    【讨论】:

    • 生成属性只是让Hibernate为你获取生成值的一种方式。 DEFAULT SYSDATE 达到了我想要的效果。我使用了insert="false",但禁用了generated="insert",因为我不需要生成的值。
    猜你喜欢
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多