@CreationTimestamp, @UpdateTimestamp
2022. 10. 4. 00:40ㆍJPA 기초
org.hibernate.annotations
Hibernate는 엔티티 객체를 대상으로 INSERT, UPDATE 쿼리가 발생할 때,
현재 시간을 자동으로 저장해주는 어노테이션을 제공한다.
@CreationTimestamp
INSERT 쿼리를 날릴 때, 현재 시간을 값으로 채운 뒤 쿼리를 생성하게 된다.
따로 생성 시간을 관리하는 수고를 덜어준다.
@UpdateTimestamp
UPDATE 쿼리를 날릴 때마다 현재 시간을 값으로 채운 뒤 쿼리를 생성한다.
변경 사항이 발생할 때마다 마지막 변경 시간으로 자동 변경되므로 업데이트 할 경우 요긴하게 사용할 수 있다.
용례
@Entity
@Getter
@Builder
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private Long id;
@CreationTimestamp // INSERT 시 자동으로 값이 채워진다.
private Timestamp timestamp;
@Column(name = "updated_at")
@UpdateTimestamp // UPDATE 시 자동으로 값을 채워준다.
private LocalDateTime updatedAt = LocalDateTime.now();
}
DB에는 자동으로 현재 시간이 저장된다.
참고로 @CreationTimestamp, @UpdateTimestamp 두 어노테이션이 지원하는 데이터 타입은
시간과 관련된 타입은 거의 다 제공하는 듯 하다!
'JPA 기초' 카테고리의 다른 글
[JPA] 변경감지(dirty checking) (0) | 2023.05.18 |
---|---|
[JPA] could not initialize proxy - no Session org.hibernate.LazyInitializationException (0) | 2022.09.07 |
JPQL: fetch join - 컬렉션 페치 조인, 페치 조인 특징과 한계, 페이징 (0) | 2022.04.04 |
JPQL: fetch join - 페치 조인, N+1의 문제 (0) | 2022.04.04 |
경로 표현식 (0) | 2022.04.04 |