使用Hibernate(4.1.7.Final),我只想在更新实体的给定属性时执行某些操作,所以我实现了PostUpdateEvent并希望检查:

@Override
public void onPostUpdate(PostUpdateEvent event) {
   int[] dirtyProperties = event.getDirtyProperties();
   ...


但这是null,与event.getOldState();相同。
该对象存在于db中,事务在此之前提交,会话已刷新。

无论如何,如果触发了onUpdate,则肯定有一些旧对象-这些空值怎么可能?

最佳答案

确保首先将实体加载到会话中。我有同样的问题。在我添加代码以将实体加载到会话中,然后对实体进行更新之前,它为我工作。
例如,

session.load(Entity.class, entity.getId());

关于java - hibernate PostUpdateEvent空旧状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26717653/

10-09 03:37