[SpringBoot] 게시판 createdAt 컬럼 사용하기[2]

Euiyeon Park·2025년 2월 8일
post-thumbnail

✨ 구현을 통한 학습 목표

  1. createdAt 컬럼 사용하기
  2. 정렬 기능
  3. 검색 기능
  4. 최대로 조회 가능한 데이터 개수 제한

✨ 게시글 작성 시간 자동으로 생성하기

💫 @CreationTimestamp - Hibernate

  • 게시글 작성 시간을 저장하기 위해 엔티티에 createdAt 컬럼을 추가
    • 타입은 LocalDateTime으로 정의
    • nullable = false로 설정
    • updateble = false로 설정 - 이후 업데이트 시 변경되지 않도록
  • 새로운 게시글을 작성할 때,
    • 새로운 엔티티가 POST요청으로 생성될 때,
    • 새로운 엔티티가 저장될 때(persist)
      자동으로 게시글 작성 시간이 생성되도록 하기 위해 @CreationTimestamp 를 추가
  • @CreationTimestamp의 적용 대상:
    • LocalDateTime, Timestamp, Date
  • 💡 Spring Data JPA에서는 @CreatedDate를 사용
@Entity
public class Post {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    private String title;

    @Column(nullable = false)
    private String content;

    @CreationTimestamp
    @Column(name="created_at", nullable = false, updatable = false)
    private LocalDateTime createdAt;

}
  • 💡 명시적으로 name = "created_at"으로 설정하지 않아도,
    MySql은 created_at으로 생성된다.
  • 💡 updatable = false 는 해당 필드가 UPDATE 쿼리에서 변경되지 않도록 설정한다.

POST 요청 테스트

  • Response에 createdAt 값이 잘 들어가 있는걸 확인할 수 있다.

PATCH 요청 테스트

  • @Column어노테이션에 updatable = false로 인해
    게시글을 수정해도 createdAt 값은 변경되지 않는다.
  • 💡 게시글 수정 시간을 자동으로 생성하고 싶은 경우 @UpdateTimeStamp 를 사용한다.
profile
"개발자는 해결사이자 발견자이다✨" - Michael C. Feathers

0개의 댓글