SpringBoot

JPA Auditing

똑똑한망치 2024. 2. 14. 20:19
728x90
반응형

1. JPA Auditing


'Audit' 이란 '감시하다' 라는 뜻으로, 각 데이터마다 '누가', '언제' 데이터를 생성하고 변경했는지 감시한다는 의미로 사용된다. 대표적으로 많이 사용되는 필드는 '생성 주체', '생성 일자', '변경 주체', '변경 일자' 가 있다.

 

 

(1) JPA Auditing 기능 활성화

Configuration 클래스를 별도로 생성하고 @EnableJpaAuditing 어노테이션을 지정한다.

// Configuration 클래스 생성

@Configuration
@EnableJpaAuditing
public class JpaAuditingConfiguration {
	...
}

 

 

 

 

(2) BaseEntitiy 만들기

코드의 중복을 없애기 위해서는 각 엔티티에 공통으로 들어가게 되는 칼럼(필드)을 하나의 클래스로 빼는 작업을 수행해야 한다.

// BaseEntity 생성

@Getter
@Setter
@ToString
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class BaseEntity {

    @CreatedDate
    @Column(updateable = false)
    private LocalDateTime = createdAt;
    
    @LastModifiedDate
    private LocalDateTime updatedAt;
    
}

 

 

주요 어노테이션

  • @MappedSuperclass : JPA의 엔티티 클래스가 상속받을 경우 자식 클래스에게 매핑 정보를 전달한다.
  • @EntityListeners : 엔티티를 데이터베이스에 적용하기 전후로 콜백을 요청할 수 있게 하는 어노테이션
  • AuditingEntityListener : 엔티티의 Auditing 정보를 주입하는 JPA 엔티티 리스너 클래스
  • @CreatedDate : 데이터 생성 날짜를 자동으로 주입하는 어노테이션
  • @LastModifiedDate : 데이터 수정 날짜를 자동으로 주입하는 어노테이션
반응형

'SpringBoot' 카테고리의 다른 글

유효성 검사  (1) 2024.02.28
연관관계 매핑  (0) 2024.02.22
Spring Data JPA 활용  (0) 2024.02.13
ORM (Object Relational Mapping)  (1) 2024.02.08
REST API 명세를 문서화하기  (0) 2024.02.02