JPA

[JPA] SpringBoot + JPA @EnableJpaAuditing 이란?

Jeong Jeon
반응형

보통 Entity를 기획할때 모든 엔티티에 들어가는 공통 컬럼들이 있다.

예를들어 등록일자, 수정일자 등이 해당되는데, 이때 사용할 수 있는 방법으로 공통Entity를 뽑아내서 사용할때 @EnableJpaAuditing을 사용한다.

 

1). 공통Entity를 작성하고, 어노테이션을 달아준다.

@Getter
@MappedSuperclass //공통매핑 정보만 담을 때 사용. Entity가 아닌 공통 컬럼정보만 제공한다. 보통 ID, 등록일, 수정일 정도
@EntityListeners(AuditingEntityListener.class)//JPA에게 해당 Entity는 Auditing기능을 사용함을 알려준다.
public abstract class CommonEntity {

	@CreatedDate
    @Column(updatable = false, nullable = false)
    private LocalDateTime registerDate;

    @LastModifiedDate
    private LocalDateTime updateDate;
}

 

2). Application 클래스에 해당 어노테이션을 달아 Spring Audit기능을 활성화한다.

@SpringBootApplication
@EnableJpaAuditing
public class TestApplication {

// 생략
}

 

3). 공통 Entity를 사용하는 클래스에서 extends하여 사용하면 끝난다.

 

 

최대한 공통화된 부분은 공통화 시키는게 코드의 깔끔함을 보장한다.

반복되는 과정을 제거함으로 귀찮음도 제거하자~

반응형