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;
- @EntityListeners(AuditingEntityListener.class) 추가
- @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 |