Spring

Spring Data Jpa Auditing

일태우 2020. 7. 29. 18:48

Spring Data Jpa Auditing

Audit: 회계 감사, 감사하다

테이블 설계시 항상 공통적으로 들어가는 생성일자, 수정일자 등의 컬럼에 대해 자동으로 값을 넣어주는 기능을 Spring-Data-Jpa에서 제공한다.

@EnableJpaAuditing 활성화

@EnableJpaAuditing
@Configuration
public class DatabaseConfig {
  @Bean
   public DataSource dataSource() {
...

@EnableJpaAuditing 어노테이션을 활성화 시켜줘야 한다. 위치는 Config 클래스나 Application.class와 같은 root 클래스에 추가한다.

Entity 설정

@Entity
@Table(name = "BOARD")
@IdClass(BoardPk.class)
@Getter
@EntityListeners(AuditingEntityListener.class)
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Board {
...
  @CreatedDate
  @Column(name = "CREATE_DATE", nullable = true, unique = false, updatable = false)
  private LocalDateTime createDate;

  @LastModifiedDate
  @Column(name = "LAST_MODIFIED_DATE", nullable = true, unique = false, updatable = true)
  private LocalDateTime lastModifiedDate;
  1. @EntityListeners(AuditingEntityListener.class) 추가
  2. @CreatedDate와 같은 Auditing 대상 필드를 추가한다.

AuditingEntityListener 클래스는 @PrePersist, @PreUpdate가 달린 메서드를 통해 엔티티가 영속화 되기전에 AuditingHandler를 통해 값을 자동으로 찾아 설정한다.

데이터 추가 해보기

필자는 샘플프로젝트에 셋업하여 데이터를 추가했다.

결과

CREATE_DATE나 LAST_MODIFIED_DATE에 대한 데이터를 넘겨주지 않았지만 Auditing 기능으로 자동으로 값이 입력된걸 볼 수 있다.

'Spring' 카테고리의 다른 글

Spring Jpa - Query DSL + Gradle 6 설정  (3) 2020.09.21
Spring Jpa - Paging api 처리하기  (0) 2020.09.18
ApplicationContext와 Singleton  (0) 2020.07.29
Spring Security + Rest  (0) 2020.02.19
STS4 + Spring Boot + Gradle 기본 세팅하기  (0) 2019.12.23