JPA Auditing으로 생성시간/수정시간 자동화하기

박찬미·2021년 10월 11일
0

Spring Boot

목록 보기
7/17

보통 엔티티에는 해당 데이터의 생성시간과 수정시간을 포함한다. 이는 차후 유지보수에 있어 중요한 정보이기 때문이다. 원래는 코드에서 현재 시간을 가져와서 DB에 매번 삽입하고 갱신하는데 이 과정을 좀 더 간단하게 하고자 JPA Auditing을 사용해보겠다.

  • LocalDate 사용
    Java8부터는 LocalDate와 LocalDateTime이 등장했는데, 이는 이전 Date의 문제점을 고친 타입이라서 Java8부터는 무조건 써야 한다.
  • Date와 Calendar 클래스 문제점
  1. 불변 객체가 아니다.
    멀티스레드 환경에서 문제 발생 가능
  2. Calendar는 월(Month) 값 설계가 잘못되었다.
    Calendar.OCTOBER의 숫자 값은 '9' = 혼란
    p.120 참고



  • domain에 BaseTimeEntity 생성

  • Posts 클래스가 BaseTimeEntity 상속

  • Application에 @EnableJpaAuditing 추가

  • PostsRepositoryTest 테스트 코드 작성

  • 테스트

    이렇게 하면 등록일/수정일로 더 이상 고민할 필요가 없다~ 상속만 받으면 자동으로 해결된다.

0개의 댓글