1. @MappedSuperclass란?
엔티티 별로 공통 필드가 존재하는 경우 불 필요한 중복 코드를 제거하기 위해 사용합니다.
2. 사용방법
1) BaseEntity.java
import javax.persistence.MappedSuperclass;
import java.time.LocalDateTime;
@MappedSuperclass
public abstract class BaseEntity {
private LocalDateTime createDt;
private LocalDateTime updateDt;
}
@MappedSuperclass 어노테이션을 클래스명 위에 선언하며, 공통 클래스를 별도로 생성하는 일이 없다면 추상 클래스로 선언하는 것이 좋습니다. 등록일, 수정일 같이 여러 테이블에서 공통으로 사용되는 필드를 테이블에 컬럼으로 등록할 때 사용합니다.
2) Product.java
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Product extends BaseEntity{
@Id
@GeneratedValue
private Long id;
private String name;
private int price;
}
BaseEntity 클래스를 상속 받으면 BaseEntity에 선언된 변수들이 컬럼으로 등록됩니다.
'IT > JPA & Hibernate' 카테고리의 다른 글
[JPA] 엔티티 매핑 어노테이션 정리 (0) | 2021.05.10 |
---|---|
[JPA] 기본키 자동 생성 전략(Primary Key) (0) | 2021.05.10 |
[JPA] 상속 관계 매핑 (0) | 2021.05.08 |
[JPA] Hibernate 연동 방법 (0) | 2021.05.05 |
[JPA] 영속성 컨텍스트 (0) | 2020.02.03 |