用于脏刷新更新的Hibernate EventType

时间:2014-07-13 13:04:11

标签: java hibernate

什么是Hibernate的EventType,我可以在发生刷新脏时监听(例如,在没有调用persist()的情况下更新被管实体)?

我查看了文档,但没有找到在这种情况下触发的文档https://docs.jboss.org/hibernate/orm/4.3/javadocs/org/hibernate/event/spi/EventType.html

我发现这个问题可能正是我想要的,但它仍然是开放的https://hibernate.atlassian.net/browse/HHH-8042

我想让这个事件添加某种日志记录(并自动更新updatedAt列)。我想我可以使用Interceptor.onFlushDirty做同样的事情,但看起来更加丑陋。

1 个答案:

答案 0 :(得分:1)

有多个flush事件侦听器:

  • DefaultFlushEntityEventListener
  • DefaultFlushEventListener
  • DefaultAutoFlushEventListener

并且每个都有自己的方式来验证会话是否是脏的。他们都没有为你提供"脏"的扩展点。刷新更新。

所以你有两个选择:

  1. 您可以使用Interceptor.onFlushDirty
  2. 您可以使用PostUpdate注释添加一些更新时间逻辑。