반응형
JAVA ORM 표준 JPA를 활용해 RDBS (관계형 데이터베이스)에 매핑할 때
공통적으로 가지는 필드나 컬럼이 존재한다.
ex) 생성일자, 수정일자, 식별자
이 때 중복되는 코드가 많아지는데, JPA가 Audit 기능을 제공해 공통적인 컬럼들을 관리하도록 한다.
Gradle 빌드 의존성에 spring-boot-starter-data-jpa
만 추가하면 사용가능하다.
도메인 패키지에 공통으로 사용되는 컬럼을 정의한 클래스를 생성한다.
@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class BaseTimeEntity {
@CreatedDate
private LocalDateTime createdDate;
@LastModifiedDate
private LocalDateTime modifiedDate;
}
그리고 @MappedSuperclass
어노테이션을 통해 해당 클래스를 상속받는 클래스에게 전달하도록 한다.BaseTimeEntity
를 상속받은 엔티티 클래스는 createdDate
와 modifiedDate
를 컬럼으로 갖게 된다.
@EntityListeners(AuditingEntityListener.class)
어노테이션은 해당 클래스에 Audit 기능을 포함시킨다.
@CreatedDate
은 엔티티가 생성되어 저장될 때 시간이 자동 저장되도록 한다.
@LastModifiedDate
은 조회한 엔티티의 값을 변경할 때 시간이 자동 저장되도록 한다.
메인 메서드에 @EnableJpaAuditing
을 추가하면 Audit 기능을 사용할 수 있다.
'Java' 카테고리의 다른 글
[Java Spring] 트랜잭션 (Transaction) (0) | 2021.04.14 |
---|---|
[Java] 롬복 Lombok (0) | 2021.04.13 |
[Java Spring] 컨테이너와 IoC, DI (0) | 2021.04.08 |
[Java] 좋은 객체지향 프로그래밍 5원칙 (SOLID) (0) | 2021.04.07 |
[JAVA] 객체 지향 프로그래밍(OOP)의 특징 (0) | 2021.04.06 |