@MappedSuperclass, @EnableJpaAuditing
이 어노테이션들은 Spring Data JPA에서 공통 엔티티 속성(예: 생성일, 수정일 등)을 자동으로 관리하기 위해 사용됩니다. 각각의 의미는 다음과 같습니다:
🔹 @MappedSuperclass
@MappedSuperclass
이 클래스를 공통 부모 엔티티로써 JPA가 인식하게 해줍니다.
하위 클래스에 매핑 정보(필드들: createdAt, updatedAt 등)를 상속하지만, 이 클래스 자체는 테이블로 생성되지 않습니다.
즉,
@Entity
는 붙이지 않음.
@MappedSuperclass
public abstract class BaseEntity {
@CreatedDate
private LocalDateTime createdAt;
@LastModifiedDate
private LocalDateTime updatedAt;
}
🔹 @EntityListeners(AuditingEntityListener.class)
@EntityListeners(AuditingEntityListener.class)
이 어노테이션은 JPA의 이벤트를 감지해서 자동으로 필드를 채우는 기능을 추가합니다.
예: 엔티티가 저장되거나 수정될 때
@CreatedDate
,@LastModifiedDate
필드를 자동으로 채워줍니다.@EnableJpaAuditing
설정과 함께 사용해야 활성화됩니다.
@EnableJpaAuditing
@SpringBootApplication
public class CafekioskApplication {
public static void main(String[] args) {
SpringApplication.run(CafekioskApplication.class, args);
}
}
✅ 요약
어노테이션
역할
@MappedSuperclass
자식 엔티티에 공통 필드 상속 (테이블 생성 안됨)
@EntityListeners(AuditingEntityListener.class)
JPA 이벤트 발생 시 자동으로 날짜 필드 채움
이 조합은 대부분의 JPA 프로젝트에서 공통 엔티티를 구성할 때 반복 없이 생성일/수정일 처리를 위해 사용됩니다.
Last updated