@MappedSuperclass 2

@MappedSuperclass 조금 다르게 사용해보기

@MappedSuperclass 어노테이션을 조금 다르게 사용하는 방법에 대한 포스팅입니다. 해당 어노테이션의 핵심 기능은 '공통 매핑 정보를 간편하게 관리'하기 위해서 인데요. 때문에 프로젝트에서는 일반적으로 createdDate와 modifiedDate 같은 공통 필드를 관리하는 BaseTimeEntity 클래스에서 가장 많이 사용됩니다. 아래 내용은 BaseTimeEntity가 아닌 @MappedSuperclass 어노테이션을 활용해 '완전히 똑같은 필드를 가진, 같은 종류지만 서로 다른 Entity를 하나의 Repository로 관리하는 방법'을 정리한 포스팅입니다. 단순하게 공통 매핑 정보를 관리하는 것과는 조금 다르게 사용해보았기 때문에 내용 참고해보시고 필요에 따라 적용을 고려해보시면 될 것..

Programming/Java 2022.07.18

JPA @CreatedDate @LastModifiedDate 생성 시간, 수정 시간이 저장되는 원리

@CreatedDate, @LastModifiedDate 데이터를 저장할 때 '생성된 시간 정보'와 '수정된 시간 정보'는 여러모로 많이 사용되고 또 중요합니다. JPA를 사용하면서 @CreatedDate, @LastModifiedDate를 사용하여 생성된 시간 정보, 수정된 시간 정보를 자동으로 저장할 수 있는데요. 오늘 작업 중에 createAt, updatedAt 값이 계속 null로 들어가던 문제를 해결하면서 동작 원리에 대해 조금 더 살펴본 내용을 정리합니다. (null이 들어간 원인은 main method가 실행되는 Application class에 @EnableJpaAuditing 어노테이션을 적용하지 않아서였습니다.) * 내용 중 자주 등장할 'audit' 는 심사, 감사하다는 뜻입니다. ..