2014-12-01 5 views
4

를 사용하여 :JPA @PrePersist 및 @PreUpdate 위해 @PrePersist 및 @PreUpdate 주석 및 가입 유형 상속을 사용하는 다음 코드를 가정하면 상속

@Entity 
@Inheritance(strategy=InheritanceType.JOINED) 
public abstract class A { 
    ... 

    @PrePersist 
    private void prePersist() { 
     ... 
    } 

    @PreUpdate 
    private void preUpdate() { 
     ... 
    } 
} 

@Entity 
@DiscriminatorValue("B") 
public class B extends A { 
    ... 

    @PrePersist 
    private void prePersist() { 
     ... 
    } 

    @PreUpdate 
    private void preUpdate() { 
     ... 
    } 
} 

질문 : 우리의 순서에 의존 할 수 콜백 메소드의 실행?

예를 들어 클래스 A와 B를 유지하면 prePersist 메소드가 B에서 prePersist 메소드가 실행되기 전에 prePersist 메소드가 A 또는 viceversa에서 실행됩니까?

클래스 A가 지속되기 전에 B의 prePersist가 실행될 것이라고 가정 할 수 있습니까?

답변

5

예. 먼저 수퍼 클래스 콜백이 실행됩니다. 세부 사항에 대한 읽기 자세한 내용은

@EntityListeners for a given entity or superclass in the array order 

Entity listeners for the superclasses (highest first) 

Entity Listeners for the entity 

Callbacks of the superclasses (highest first) 

Callbacks of the entity 

: "콜백 청취자 상속을"

https://docs.jboss.org/hibernate/entitymanager/3.5/reference/en/html/listeners.html

+0

에 링크를 넣어 말아 이벤트가 발생하면

는 청취자가이 순서대로 실행됩니다 같은 부분에 중요한 부분을 넣은 그대로이므로 – tharif

+0

@Andy는 의미가 있지만, 고마워요. – cevantes