JPA - Auditing

UkJJang·2021년 10월 19일

JPA 강의를 보고 개인 프로젝트를 통해 직접 작성해 보면서 미흡했던 부분이 많았다. 테이블을 생성하고 데이터를 insert 하는 부분에서 생성 날짜와 수정 날짜는 공통적으로 모든 테이블에 포함되어 있다면 좋을 것 같았다.

하지만 각 클래스마다 LocalDateTime을 추가해 주는 것은 굉장히 번거로운 일이였다. 임베디드 타입을 통해 사용할 수도 있지만 자동으로 날짜 데이터 까지 추가해 줬으면 하는 바램이 있었다. 찾아본 결과 역시 존재했다.

Auditing

  • 생성 시간 수정 시간을 자동으로 자동화 하는 전용 클래스 하나를 만들어 필요한 엔티티에 상속받도록 해주면 된다.
@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class BaseTimeEntity {

    @CreatedDate
    private LocalDateTime createTime;
    @LastModifiedDate
    private LocalDateTime updateTime;

}
  • MappedSuperClass : BaseEntity 상속한 엔티티들은 BaseEntity에 있는 멤버 변수들을 모두 컬럼으로 인식하게 된다.
  • EntityListeners(AuditingEntityListener.class) : Auditing 기능을 사용하여 자동으로 값을 매핑시키는 기능이다.
  • CreatedDate / LastModifiedDate : 데이터가 생성, 수정되는 시점에 자동으로 매핑해주는 어노테이션
  • @EnableJpaAuditing : SpringBootApplication에 추가해줘야 Auditing기능을 사용할 수 있다.
profile
꾸준하게 성실하게

0개의 댓글