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 |