java - 通过 JPQL UPDATE 查询获取更新的实体

标签 java hibernate jpa jpql

我们可以使用@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/

相关文章:

java - 当我添加更多接口(interface)时,C++ 对象的大小会增加……Java 会这样做吗?

java - 编译错误-无法访问的语句

java - 用于匹配包含 <n> 个字符的字符串的简单正则表达式

java - Hibernate、SQL 和递归关联

java - 无法使用 JPA 实例化集合持久化器

java - JPA:如何使用 OneToMany 注释将新项目添加到列表中

hibernate - JPA Hibernate 一对多批量插入

java - 两次 Java RPC 调用或一次

java - 在查询中映射复合外键

java - Hibernate 3.2.0 Final 中的二级缓存