Spring Data JPA - Auditing
Spring Data JPA
백기선님의 강의인 Spring Data JPA 강의를 듣고 공부한 내용을 정리한 글
Auditing
Auditing이란 엔터티의 변경 시점에 누가, 언제 변경했는지에 대한 정보를 기록하는 기능이다.
아쉽지만 이 기능은 스프링 부트가 자동설정 해주지는 않는다.
설정법은 간단하다.
메인 애플리케이션에
@EnableJpaAuditing
애노테이션을 추가한다.엔터티에
@EntityListeners
를 추가해준다.AuditorAware 구현체를 만든다.
@EnableAuditing
에 AuditorAware 빈 이름 설정
JPA 라이프 사이클 이벤트
Auditing을 사용하는 것 말고는 엔터티의 변경 시점에 뭔가 조작을 할 수 없을까?
JPA 라이프 사이클 이벤트를 사용하면 가능하다.
엔터티 모델에 @PrePersist
애노테이션이 적용된 메소드를 적용해보자.
그러면 JPA가 해당 엔터티를 Persist 상태로 바꾸기 전에 해당 메소드가 호출되어서 생성 날짜나 쓰레드 로컬에서 누가 생성했는지에 대한 정보를 받아와 설정해주는 것이 가능하다.
Reference
인프런 백기선님의 스프링 Data JPA