아래와 같이 데이터베이스 이력관리 테이블에 따라 항상 최초생성일과 최종수정일은 붙어다닌다.
MbrEntity mbrntity = MbrEntity.builder()
.frstDt(LocalDateTime.now())
.updtDt(LocalDateTime.now())
.build();
JPA에서 일일히 엔티티마다 작성해주기엔 너무 노가다라서,,, 이를 위해 반복된 작업을 없애기위한 방법을 작성한다.
Spring Boot 기준으로 Application.java 파일에서 이렇게 수정해주자
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
@EnableJpaAuditing
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@JpaAuditing 어노테이션을 추가해준다.
그다음 Entity 에서 아래와 같이 수정한다.
@CreatedDate
@Comment("최초등록일시")
private LocalDateTime frstDt;
@LastModifiedDate
@Comment("최종수정일시")
private LocalDateTime updtDt;
@CreatedDate : 최초등록할때 jpa 가 자동으로 등록
@LastModifiedDate : 수정할때 jpa 가 자동으로 수정
그리고 마지막으로 entity 클래스의 어노테이션으로 이걸 추가해준다.
@EntityListeners(AuditingEntityListener.class)
이제 신경쓰지않아도 인스턴스가 생성되거나 수정될때 자동으로 입력되는것을 확인할수있다.