[Spring] AuditingEntityListener이란?

유승욱·2024년 1월 30일
0

@MappedSuperclass

데이터베이스의 거의 모든 테이블에는 데이터가 추가된 시간이나 수정된 시간 등이 칼럼으로 작성됩니다. 자바에서는 이를 쉽게 처리하고자 @MappedSuperClass를 이용해서 공통으로 사용되는 칼럼들을 지정하고 해당 클래스를 상속해서 이를 손쉽게 처리합니다.

BaseEntity.java

@MappedSuperclass
@EntityListeners(value = {AuditingEntityListener.class})
@Getter
abstract class BaseEntity {

    @CreatedDate
    @Column(name = "regdate", updatable = false)
    private LocalDateTime regDate;

    @LastModifiedDate
    @Column(name = "moddate")
    private LocalDateTime modDate;
}

AuditingEntityListner

BaseEntity에서 가장 중요한 부분은 자동으로 Spring Data JPA의 AuditingEntityListener를 지정하는 부분입니다. AuditingEntityListner를 적용하면 엔티티가 데이터베이스에 추가되거나 변경될 때 자동으로 시간 값을 지정할 수 있습니다.

AuditingEntityListner 활성화

AuditingEntityListener를 활성화 시키기 위해서는 프로젝트의 설정에 @EnableJpaAuditing을 추가해 주어야만 합니다.

@SpringBootApplication
@EnableJpaAuditing
public class ExApplication {

	public static void main(String[] args) {
		SpringApplication.run(ExApplication.class, args);
	}

}

@CreatedDate

Entity가 생성되어 저장될 때 시간이 자동 저장

@LastModifiedDate

조회한 Entity의 값을 변경할 때 시간이 자동 저장

0개의 댓글