생성 시간, 수정 시간 자동으로 값 넣기
2022. 3. 29. 13:25ㆍBackEnd(Java)/Spring Data JPA
Spring Data 공식문서를 읽어보면 엔티티가 수정되거나 생성될 때 자동으로 행위자와 그 시간에 대한 정보를 제공(Capture)한다고 나와있다. 이 기능을 JPA Auditing라고 한다.(그림 1 참고)
그러면 실제 JPA에서 어떻게 설정하고 사용하는지 알아보자
설정
아래의 그림 2를 보면 먼저 클래스 위에 @EntityListeners를 사용하여 Auditing 기능을 사용한다고 선언 후 실제 생성시간, 수정 시간에 맞는 필드에 각각 @CreatedDate와 @LastModifiedDate를 사용하면 자동으로 시간이 설정돼서 들어가게 된다.
위 설정 후 프로젝트의 SpringBoot Main 부분 클래스에 @EnableJpaAuditing 어노테이션을 사용하여 JpaAuditing 기능을 사용한다고 선언하면 된다.(그림 3,4 참고)
그러면 실제 엔티티 등록 및 수정할 때 등록일, 수정일 컬럼에 자동으로 시간이 들어가게 된다.
결과
실제 DB에 값이 잘 들어가는것을 확인할 수 있다.
*참고사항
(기능적으로는 크게 차이가 없으나 제공해주는 주체가 다르다)
- @CreationTimestamp, @UpdateTimestamp : 하이버네이트 제공
- @CreatedDate, @LastModifiedDate : 스프링 프레임워크 제공
참고 자료
- https://docs.spring.io/spring-data/jpa/docs/current/reference/html/index.html#auditing
- https://compunication.tistory.com/27
반응형
'BackEnd(Java) > Spring Data JPA' 카테고리의 다른 글
@OnetoMany 관계 삭제 (0) | 2022.04.21 |
---|---|
부모 - 자식 엔티티 관계 삭제 (0) | 2022.04.19 |
JPA - Mysql 컬럼명 대문자 생성이 안될 때 (0) | 2022.03.24 |
JPA - Mysql 컬럼 매핑 (0) | 2022.03.24 |
@Not Null vs @Column(nullable = false) 차이 비교 (0) | 2022.03.24 |