728x90
🌞 Spring
엔티티 클래스에서 시간을 2가지 방법으로 관리한다.
바로 Hibernate에서 제공하는 @CreationTimestamp과 JPA에서 제공하는 @CreatedDate.
둘의 차이를 알아보자!!
1️⃣ @CreatedDate & @LastModifiedDate
사용하기 위해선 2가지 설정이 필요하다!
- SpringApplication에 @EnableJpaAuditing을 붙인다.
- 선언한 엔티티에 @EntityListeners(AuditingEntityListener.class)를 붙인다.
설정이 필요한 이유는 다음과 같다.
- JPA는 JPA 고유 메모리 공간(context)을 이용해서 엔티티 객체들을 관리한다.
- 관리되는 객체들이 변경되면 데이터에 반영되는 형식이다. 즉, 재사용하는 방식이다.
- 이 변화를 감지할 수 있어야 한다. 따라서 리스너라는 녀석을 사용한다.
따라서 @EnableJpaAuditing을 사용하게 리스너를 활성화시키고 @EntityListeners(AuditingEntityListener.class)를 사용해서 엔티티를 감시하게 하는 것이다!
2️⃣@CreationTimestamp & @UpdateTimestamp
Hibernate에서 제공하는 어노테이션이다.
JPA에서 제공하는 어노테이션과 다르게 추가적인 설정은 필요 없다!
요즘 추세는 하이버네이트의 어노테이션을 사용하지 않는 것이라고 한다!! (21. 07월 기준)
'개인 공부 > TIL' 카테고리의 다른 글
TIL : @Modifying, Junit5 (13) (0) | 2022.09.27 |
---|---|
TIL : Lombok 알아보기 (12) (0) | 2022.09.14 |
TIL : git 사용하기 (10) (0) | 2022.08.24 |
TIL : Kruskal(크루스칼) 알고리즘 (9) (0) | 2022.08.21 |
TIL : 플로이드-워샬(Floyd-Warshall) 알고리즘 (8) (0) | 2022.08.17 |
댓글