-
[JPA] Auditing 설정 방법Java/JPA 2019. 8. 15. 21:21반응형
데이터 베이스에 정보를 저장할 때, 생성일, 최근 수정일, 작성자, 최근 수정자 컬럼은 항상 포함이 되어있습니다. 이러한 컬럼들을 저장하기 위해서 항상 반복적인 코드 작성이 발생합니다. 이런 귀찮은 작업들을 JPA에서는 Auditing이라는 기능으로 처리할 수 있습니다.
설정 방법은 상당히 간단합니다.
먼저 Auditing 필드를 포함하는 BaseEntity 클래스입니다. BaseEntity는 인스턴스를 직접 만들 수 없도록 abstract 클래스로 작성하였습니다.
@Getter @MappedSuperclass @EntityListeners(AuditingEntityListener.class) public abstract class BaseEntity { @CreatedDate private LocalDateTime createdDate; @LastModifiedDate private LocalDateTime modifiedDate; @CreatedBy @Column(nullable = false, length = 20, updatable = false) private String createdBy; @LastModifiedBy private String modifiedBy; }
JPA의 Audit 기능을 사용할 수 있도록 자바 설정 코드를 작성합니다.
@Configuration @EnableJpaAuditing public class JpaAuditConfig { @Bean public AuditorAware<String> auditorProvider() { return new AuditorAwareImpl(); } }
JpaAuditConfig 설정 클래스에서 Bean으로 등록했던 AuditorAware 인터페이스 구현 클래스입니다.
public class AuditorAwareImpl implements AuditorAware<String> { @Override @NonNull public Optional<String> getCurrentAuditor() { return Optional.of(SecurityContextHolder.getContext().getAuthentication().getName()); } }
위의 방법은 스프링 시큐리티의 context로부터 사용자 정보를 가져와서 audit 기능을 구현합니다.
반응형'Java > JPA' 카테고리의 다른 글
QueryDSL 서브 쿼리 사용법 (0) 2019.07.14 [QueryDSL] select 절에서 조회 대상 지정 방법 (0) 2019.07.13 JPA QueryDSL 시작해보기 (0) 2019.07.11