프로젝트하다 게시글 작성 시간을 DB에 넣어야할때가 왔다.
Hibernate에서 제공하는 방법이랑 builder에서 하드하게 넣는 방법을 설명 해드릴려고합니다!
@CreationTimestamp
private LocalDateTime created_at;
@UpdateTimestamp
private LocalDateTime update_at;
Hibernate에서 INSERT 쿼리가 실행될 때, 해당 필드에 현재 시각 (DB or 시스템 시간) 을 자동으로 넣어주는 기능이다.
persist가 실행되면 그때 값을 넣어준다.
Update 된 시점에는 값을 새로 갱신 하지않는다.
Hibernate에서 UPDATE 쿼리가 실행될 때, 해당 필드에 현재 시각 (DB or 시스템 시간) 을 자동으로 넣어주는 기능이다.
UPdate가 실행되면 그때 값을 넣어준다.
INSERT 시에도 값이 들어간다 (처음 생성도 update처럼 처리되므로).
dirty checking으로 인한 update가 일어나지 않으면 값이 갱신되지 않는다.
.created_at(LocalDateTime.now())
builder 가 생성될때 실행된다.
결국에는 Hibernate가 관리하냐 개발자가 관리하냐 이런 느낌이다. 그만큼 hibernate가 dirty checking역활이 느껴진다.
글 읽어주셔서 감사합니다! :)