JPA - MappedSuperClass
·
Spring/JPA
@MappedSuperclass란? 객체의 입장에서 공통 매핑 정보가 필요할 때 사용 예를 들어 공통으로 작성일, 작성자, 수정일, 수정자를 공통으로 집어넣고 싶을때 사용한다. 공통 매핑 정보가 필요할 떄 부모 클래스에 선언하고 속성만 상속받아서 사용하고 싶을 때 사용한다. 객체에 적용하기 import lombok.Data; import javax.persistence.MappedSuperclass; import java.time.LocalDate; import java.time.LocalDateTime; @Data @MappedSuperclass public abstract class BaseEntity { /** * 작성자 및 작성일 */ private String createdBy; private ..
JPA - 상속관계매핑
·
Spring/JPA
상속관계 매핑 객체는 상속관계가 존재하지만, 관계형 DB에는 상속 관계가 없다. 상속관계 매핑이라는 것은 객체의 상속 구조와 DB의 슈퍼타입 서브타입 관계를 매핑하는 것 슈퍼타입과 서브타입 논리 모델 → 물리모델로 구현하는 방법 3가지 방법이 존재한다. JPA가 이 3가지 방법과 매핑하려면 @Inheritence(strategy=InheritanceType.XXX)의 strategy를 설정해주면 된다. XXX = ‘JOINED’,’SINGLE_TABLE’,’TABLE_PER_CLASS’로 구성되어 있다. @DiscriminatorColumn(name=”DTYPE”) 부모 클래스에서 선언, 하위 클래스를 구분하는 용도의 컬럼을 생성 관례는 default=DTYPE @DiscriminatorValue(”XX..