보통 엔티티에는 해당 데이터의 생성시간과 수정시간을 포함한다. 이는 차후 유지보수에 있어 중요한 정보이기 때문이다. 원래는 코드에서 현재 시간을 가져와서 DB에 매번 삽입하고 갱신하는데 이 과정을 좀 더 간단하게 하고자 JPA Auditing을 사용해보겠다.
- Date와 Calendar 클래스 문제점
- 불변 객체가 아니다.
멀티스레드 환경에서 문제 발생 가능- Calendar는 월(Month) 값 설계가 잘못되었다.
Calendar.OCTOBER의 숫자 값은 '9' = 혼란
p.120 참고
Posts 클래스가 BaseTimeEntity 상속
Application에 @EnableJpaAuditing 추가
PostsRepositoryTest 테스트 코드 작성
테스트
이렇게 하면 등록일/수정일로 더 이상 고민할 필요가 없다~ 상속만 받으면 자동으로 해결된다.