java - 使用 Hibernate 生成 Create_Date 和 Update_Date 列

标签 java hibernate orm

我直接使用没有注释的 Hibernate 3.0。

当保存或更新域对象时,我希望 Hibernate 自动生成 CREATE_DT 和 UPDATE_DT 字段,而不是使用数据库触发器。

实现此目标的最佳做法是什么?

背景是我有一个从客户端传递的对象图,其中包含多个对象。其中一些最终将被插入,而另一些将被更新。我可以在客户端设置日期,但这是个坏主意。在服务器上设置日期意味着我必须浏览图表并检测变化。

在我看来,Hibernate 有一个工具可以实现这一点,但它并没有冲我出气。

最佳答案

不使用触发器的 Hibernate 方法是使用 Hibernate 的 event architecture并为 PreInsertEventPreUpdateEventSaveOrUpdateEvent 注册监听器(查看 org.hibernate.event 包完整列表)设置和更新创建/更新日期。

另一种选择是使用 interceptorSession-scoped 或 SessionFactory-scoped,在 onSave 中设置创建更新日期 (...)onFlushDirty(...) 中的更新日期

也许看看这个previous answer其他选项。

关于java - 使用 Hibernate 生成 Create_Date 和 Update_Date 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2679225/

相关文章:

java - 如何在 Hibernate/JPA 中的两个表之间创建中间表?

java - 如何在 Spring Boot 1.5.1 Hibernate 中防止隐式缓存

python - Django ORM - update() 行乘以 Decimal()

java - toplink 排序按预分配大小跳转

python - 我想在 django 中使用 ORM 获取两个查询数据的结果

Java 全局文件数组在方法之后丢失下标

java - Akka 扩展有什么好处?

java - 限制 ObservableList 的大小

java - 通过索引访问 map ?

java - 如何将不同记录的数据添加到一条记录中?