我们可以使用@PostUpdate跟踪更新的实体:
@Entity
public class Author {
...
@PostUpdate
public void postUpdate() {
Tracker.trackEntity(this);
}
}
当我们使用EntityManager.merge(...)更新实体时,postUpdate()将被调用。
但是我如何跟踪使用批量更新修改的实体(EntityManager.createQuery(...).executeUpdate())?
最佳答案
不能,除非您首先对受 UPDATE 查询影响的实体进行查询。这就是 UPDATE 查询的要点,它直接进入数据库,并且没有诸如回调或级联之类的钩子(Hook)。
关于java - 通过 JPQL UPDATE 查询获取更新的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26195962/