반응형
보통 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하여 사용하면 끝난다.
최대한 공통화된 부분은 공통화 시키는게 코드의 깔끔함을 보장한다.
반복되는 과정을 제거함으로 귀찮음도 제거하자~
반응형
'JPA' 카테고리의 다른 글
[JPA] @Embedded @Embeddable 이란? 예제 (0) | 2021.08.17 |
---|---|
[JPA] No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer 오류 (0) | 2021.08.11 |
[JPA] 관계 매핑 기초 정리 (0) | 2021.07.23 |
[JPA] SpringBoot Jpa 에서 Querydsl 세팅시 Qclass 못찾는 경우 (0) | 2021.07.22 |
[JPA] JPA Repository 메서드 명명규칙 (0) | 2021.04.14 |