JPA Auditing 사용하기

해당 내용은 이동욱님 저서 '스프링 부트와 AWS로 혼자 구현하는 웹 서비스'를 공부하며 정리한 내용입니다.

생성시간과 수정시간을 처리하기 위해 단순하고 반복적인 코드가 모든 테이블과 서비스 메서드에 포함된다. JPA Auditing을 사용하면 이 문제를 해결할 수 있다.

BaseTimeEntity

모든Entity의 상위 클래스가 되어 Entity들의 createdDate, modifiedDate를 자동으로 관리

@MappedSuperclass

  • JPA Entity 클래스들이 BaseTimeEntity를 상속할 경우 이 클래스의 필드도 컬럼으로 인식하게 된다

@EntityListeners(AuditingEntityListener.class)

  • BaseTimeEntity 클래스에 Auditing 기능을 포함시킨다

@CreatedDate

  • Entity가 생성되어 저장될 때 시간이 자동 저장된다

@LastModifiedDate

  • 조회한 Entity의 값을 변경할 때의 시간이 자동 저장된다.

이후에는 Entity에서 BaseTimeEntity를 extends 시키고, Application 클래스에 @EnableJpaAuditing 어노테이션을 추가한다.

@EnableJpaAuditing

  • JPA Auditing 활성화

PostsRepositoryTest

출처 : https://velog.io/@shawnhansh/SpringBoot%EC%97%90%EC%84%9C-JPA-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B04-JPA-Auditing

Last updated