我直接使用没有注释的 Hibernate 3.0。
当保存或更新域对象时,我希望 Hibernate 自动生成 CREATE_DT 和 UPDATE_DT 字段,而不是使用数据库触发器。
实现此目标的最佳做法是什么?
背景是我有一个从客户端传递的对象图,其中包含多个对象。其中一些最终将被插入,而另一些将被更新。我可以在客户端设置日期,但这是个坏主意。在服务器上设置日期意味着我必须浏览图表并检测变化。
在我看来,Hibernate 有一个工具可以实现这一点,但它并没有冲我出气。
最佳答案
不使用触发器的 Hibernate 方法是使用 Hibernate 的 event architecture并为 PreInsertEvent
、PreUpdateEvent
或 SaveOrUpdateEvent
注册监听器(查看 org.hibernate.event
包完整列表)设置和更新创建/更新日期。
另一种选择是使用 interceptor ,Session
-scoped 或 SessionFactory
-scoped,在 onSave 中设置创建和更新日期 (...)
和 onFlushDirty(...)
中的更新日期。
也许看看这个previous answer其他选项。
关于java - 使用 Hibernate 生成 Create_Date 和 Update_Date 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2679225/