使用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/