Позвольте мне скопировать некоторые части спецификации FR API Java Persistence, которые, как я полагаю, могут ответить на ваш вопрос.
3.5.1 Методы обратного вызова жизненного цикла
Методы обратного вызова могут иметь открытый, частный, защищенный доступ или доступ на уровне пакета , но не должны быть статическими или окончательными.
3.5.4 Несколько методов обратного вызова жизненного цикладля события жизненного цикла объекта
Если несколько классов в иерархии наследования - классы сущности и / или сопоставленные суперклассы - определяют прослушиватели сущности, прослушиватели, определенные для суперкласса, вызываются допрослушиватели, определенные для его подклассов в следующем порядке .
(...)
Если метод обратного вызова жизненного цикла для того же события жизненного цикла также указан в классе сущности и / или одномили более его сущности или сопоставленных суперклассов, методы обратного вызова в классе сущности и / или суперклассах вызываются после другого обратного вызова жизненного цикла methods, сначала самый общий суперкласс.
И в следующем разделе приведен очень подробный пример, который может решить вашу проблему:
3.5.5 Пример
Существует несколько классов сущностей и прослушивателей для животных:
@Entity
public class Animal {
....
@PostPersist
protected void postPersistAnimal() { .... }
}
@Entity
@EntityListeners(PetListener.class)
public class Pet extends Animal {
....
}
@Entity
@EntityListeners({CatListener.class, CatListener2.class})
public class Cat extends Pet {
....
}
public class PetListener {
@PostPersist
protected void postPersistPetListenerMethod(Object pet) { .... }
}
public class CatListener {
@PostPersist
protected void postPersistCatListenerMethod(Object cat) { .... }
}
public class CatListener2 {
@PostPersist
protected void postPersistCatListener2Method(Object cat) { .... }
}
Если на экземпляре Cat происходит событие PostPersist, следующие методы вызываются по порядку:
- postPersistPetListenerMethod
- postPersistCatListenerMethod
- postPersistCatListener2Method
- postPersistAnimal
Надеюсь, это поможет!