[Spring/JPA] @CreationTimestamp, @UpdateTimestamp

bluewhale·2021년 5월 29일
2

Spring

목록 보기
8/9

Hibernate Annotations

Hibernate에서는 엔티티 객체에 대해 INSERT, UPDATE 등의 쿼리가 발생할 때, 현재 시간을 자동으로 저장해주는 @CreationTimestamp@UpdateTimestamp 어노테이션을 제공한다.

@CreationTimestamp

@CreationTimeStampINSERT 쿼리가 발생할 때, 현재 시간을 값으로 채워서 쿼리를 생성한다. @InsertTimeStamp 어노테이션을 사용하면 데이터가 생성된 시점에 대한 관리하는 수고스러움을 덜 수 있다.

@UpdateTimestamp

@UpdateTimestampUPDATE 쿼리가 발생할 때, 현재 시간을 값으로 채워서 쿼리를 생성한다. @UpdateTimestamp 어노테이션을 사용하면 수정이 발생할 때마다 마지막 수정시간을 업데이트 해주어야 하는 데이터에 유용하게 활용될 수 있다.

예시로 사용한 Post 객체에는 updatedAt 필드가 있다. 이 필드는, 게시글의 수정이 발생할 때 마다 매번 업데이트를 해주어야 한다. @UpdateTimestamp 어노테이션은 이러한 경우 유용하게 활용될 수 있다.


@Entity
@Getter
@Builder
public class Post {
    @Id
    @GeneratedValue
    @Column(name = "user_id")
    private Long id;

    @Email
    private String text;

    @CreationTimestamp // INSERT 시 자동으로 값을 채워줌
    @Column(name = "created_at")
    private LocalDateTime createdAt = LocalDateTime.now();

    @Column(name = "updated_at")
    @UpdateTimestamp // UPDATE 시 자동으로 값을 채워줌
    private LocalDateTime updatedAt = LocalDateTime.now();
}
profile
안녕하세요

0개의 댓글