생성 시간, 수정 시간 자동으로 값 넣기

2022. 3. 29. 13:25BackEnd(Java)/Spring Data JPA

Spring Data 공식문서를 읽어보면 엔티티가 수정되거나 생성될 때 자동으로 행위자와 그 시간에 대한 정보를 제공(Capture)한다고 나와있다. 이 기능을 JPA Auditing라고 한다.(그림 1 참고) 

 

그러면 실제 JPA에서 어떻게 설정하고 사용하는지 알아보자

 

그림 1 - spring data 공식 문서

 


설정

아래의 그림 2를 보면 먼저 클래스 위에 @EntityListeners를 사용하여 Auditing 기능을 사용한다고 선언 후 실제 생성시간, 수정 시간에 맞는 필드에 각각 @CreatedDate와 @LastModifiedDate를 사용하면 자동으로 시간이 설정돼서 들어가게 된다.

 

그림 2 - 생성일, 수정일 어노테이션 설정

 

위 설정 후  프로젝트의 SpringBoot Main 부분 클래스에 @EnableJpaAuditing 어노테이션을 사용하여 JpaAuditing 기능을 사용한다고 선언하면 된다.(그림 3,4 참고) 

그러면 실제 엔티티 등록 및 수정할 때 등록일, 수정일 컬럼에 자동으로 시간이 들어가게 된다.

 

그림 3 - Main

 

그림 4 - @EnableJpaAuditing 설명

결과

실제 DB에 값이 잘 들어가는것을 확인할 수 있다.

 

 


*참고사항

(기능적으로는 크게 차이가 없으나 제공해주는 주체가 다르다)

  • @CreationTimestamp, @UpdateTimestamp : 하이버네이트 제공
  • @CreatedDate, @LastModifiedDate           : 스프링 프레임워크 제공

 

참고 자료

  1. https://docs.spring.io/spring-data/jpa/docs/current/reference/html/index.html#auditing
  2. https://compunication.tistory.com/27

 

반응형