애플리케이션에서 데이터를 관리하다 보면, 누가, 언제 데이터를 생성하고 수정했는지를 추적하는 기능이 필요할 때가 많다.
Spring Data JPA는 이를 간편하게 처리할 수 있도록 Auditing 기능을 제공한다.
1. Auditing이란?
Auditing은 엔티티에 대해 데이터 변경 이력을 기록하는 기능이다. Spring Data JPA는 이를 자동화하여 개발자가 별도의 로직을 작성하지 않고도 엔티티의 생성일자, 수정일자, 생성자, 수정자 등을 관리할 수 있도록 도와준다.
2. Auditing 설정
활성화 설정
@EnableJpaAuditing
@SpringBootApplication
public classApplication {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
3. Auditing 사용 방법
3.1 Auditable 엔티티 필드
Auditing을 적용할 엔티티 클래스에서 아래의 어노테이션을 사용하여 필드를 정의.
주요 어노테이션
- @CreatedDate: 엔티티가 생성된 시간을 자동으로 기록.
- @LastModifiedDate: 엔티티가 마지막으로 수정된 시간을 자동으로 기록.
- @CreatedBy: 엔티티를 생성한 사용자를 기록.
- @LastModifiedBy: 엔티티를 마지막으로 수정한 사용자를 기록.
3.2 엔티티 클래스
@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseEntity {
@CreatedDate
@Column(updatable = false)
private LocalDateTime createdDate;
@LastModifiedDate
private LocalDateTime lastModifiedDate;
@CreatedBy
@Column(updatable = false)
private String createdBy;
@LastModifiedBy
private String lastModifiedBy;
}
3.3 엔티티 상속
공통적으로 Auditing이 필요한 엔티티는 위의 BaseEntity를 상속받아 사용한다.
'Back-End > JPA' 카테고리의 다른 글
| @Fetch(EAGER)와 fetch join 차이와 LAZY 로딩의 작동 방식 (0) | 2025.03.23 |
|---|---|
| 트러블 슈팅 : 게시글 조회 시 조회수가 증가하지 않는 문제 (0) | 2025.02.04 |
| Spring Data JPA : 벌크성 수정 쿼리와 엔티티 그래프 (2) | 2024.12.18 |
| Spring Data Jpa : 페이징과 정렬 (1) | 2024.12.18 |
| Spring DataJpa : 쿼리 메서드 기능 (0) | 2024.12.18 |