Ada*_*m B 11 java orm hibernate jpa
我有一个JPA注释类,其中包含如下集合:
@Entity
public class Employee {
    @Id
    private int id; 
    @Basic
    private String name;    
    @OneToMany
    @JoinTable(name = "ORG", joinColumns = @JoinColumn(name="MINION"),
        inverseJoinColumns = @JoinColumn(name="EMP"))
    private List<Employee> minions = new ArrayList<Employee>();
    @PreUpdate
    public void preUpdate(){ ... }
}
我所看到的是,如果我有一个托管的Employee实体,并且我添加了它的minions集合,preUpdate则不会调用该方法.在DB中的映射表中添加了一个新行,因此我知道更新正在进行中.如果我直接在Employee上更改属性(如name),则会preUpdate在提交事务时按预期触发.
有没有办法在修改映射集合时触发PreUpdate?或者是否有其他技术或Hibernate特定注释用于检测何时发生?
@PreUpdate在为相关实体执行数据库UPDATE操作之前触发事件.
如果你没有更新直接属性Employee,那么就没有UPDATE为它的表执行,因此@PreUpdate永远不会调用监听器.使用@PrePersist"刷新"而非"更新"触发的事件应该会有更好的运气.
| 归档时间: | 
 | 
| 查看次数: | 4836 次 | 
| 最近记录: |