엔티티 생명주기에 리스너 등록하기
생명주기 종류 : prePersist, postPersist, postLoad, preRemove, postRemove..
방법
- 엔티티에 직접 적용
@Entity
public class Duck {
@PrePersist
public void prePersist(Duck duck) {
log.info("prepersist");
}
@PostPersist
public void postPersist() {
log.info("postpersist");
}
....
}
- 별도의 리스너 등록
public class DuckListener {
@PrePersist
private void prePersist(Object obj) {
log.info("prePersist");
}
}
@Entity
@EntityListeners(DuckListener.class)
public class Duck {
...
}
- 기본 리스너 사용
META-INF/orm.xml 에 디폴트 리스너 등록
<entity-mappings ...>
<persistence-unit-metadata>
<persisence-unit-defaults>
<entity-listeners>
<entity-listener class="..."/>
</entity-listeners>
</persistence-unit-defaults>
</persistence-unit-metadata>
</entity-mappings>
'JAVA' 카테고리의 다른 글
JPA 성능 최적화 (0) | 2021.04.28 |
---|---|
JPA 엔티티 그래프 (0) | 2021.04.28 |
JPA Entity와 DB값 간 매핑 (0) | 2021.04.28 |
JPA 지연로딩 (0) | 2021.04.28 |
JPA @ManyToMany (0) | 2021.04.23 |