보통 엔티티에는 해당 데이터의 생성시간과 수정시간을 포함한다. 차후 유지보수에 있어 굉장히 중요한 정보이기 때문이다.

그렇다보니 매번 DB에 삽입하기 전, 갱신하기 전에 날짜 데이터를 등록/수정하는 코드가 여기저기 들어간다.

데이터의 생성 시간, 수정 시간을 등록하는 코드가 반복적으로 들어가면 코드가 지저분해진다. 이 문제를 해결하기 위해 JPA Auditing을 사용할 수 있다.

1. LocalDate 사용

LocalDate

Date와 Calendar의 문제점

  1. 불변 객체가 아니다.

    불변 객체란 변경이 불가능한 객체를 의미한다. 멀티 스레드 환경이라면 언제든 문제가 발생할 수 있다.

  2. Calendar는 월(Month) 값 설계가 잘못되었다.

    Calendar에서 10월을 나타내는 Calendar.OCTOBER의 값은 9이다. 당연히 10이라고 생각하는 개발자들에게 혼란을 불러일으킨다.

2. JPA Auditing 적용

참고

클래스 생성 및 추가