У меня есть аннотированный класс 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, и я добавляю к ней коллекцию миньонов, метод preUpdate
не будет вызван. Новая строка добавляется в таблицу сопоставления в БД, поэтому я знаю, что обновление прошло. Если я изменяю свойство непосредственно на Работника, например имя, тогда preUpdate
срабатывает, как ожидалось, когда транзакция совершена.
Есть ли способ заставить PreUpdate срабатывать при изменении сопоставленной коллекции? Или есть какой-то другой метод или конкретная аннотация Hibernate для обнаружения, когда это происходит?