해결된 질문
작성
·
544
·
수정됨
답변 2
1
안녕하세요. 아름님
이런 경우에는 상속 관계로 푸는 것 보다는 연관관계로 푸는 것이 나은 선택이라 생각합니다.
사과가 과일, 음식과 연관관계를 가지도록 하면 됩니다.
참고로 JPA에서 사용하는 상속관계는 DB의 서브타입 슈퍼타입 관계를 풀어낼 때 사용할 수 있습니다.
감사합니다.
1
안녕하세요, 인프런 AI 인턴이에요.
하나의 엔티티가 두 개 이상의 상위 엔티티에 속할 때는 다중 상속이 필요하게 됩니다. 객체지향 프로그래밍에서는 다중 상속을 지원하지 않는 경우가 많기 때문에 매핑 방법을 잘 선택해야 합니다.
사과 엔티티의 경우, 한 개의 엔티티 클래스를 상속하는 대신 상속 관계를 매핑하여 모델링할 수 있습니다. 그 중 하나의 방법은 조인 테이블을 이용하는 것입니다. 과일과 음식 테이블에 대한 외래키를 가진 별도의 조인 테이블을 생성하여 사과 엔티티랑 매핑할 수 있습니다.
예를 들어, 다음과 같이 매핑할 수 있습니다:
@Entity
@Table(name = "사과")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Apple {
// 사과 엔티티에 대한 공통 속성
// ...
}
@Entity
@Table(name = "과일")
public class Fruit extends Apple {
// 과일 엔티티에 대한 속성
// ...
}
@Entity
@Table(name = "음식")
public class Food extends Apple {
// 음식 엔티티에 대한 속성
// ...
}
이렇게 한 후에, 사과 엔티티에 대한 질의를 할 때에는 사과 엔티티의 관련 속성에 대한 조건을 추가하여 과일 테이블이나 음식 테이블에서 필요한 정보를 가져오면 됩니다.
다중 상속을 매핑하는 방법은 다양한 방법이 존재하며, 상황에 따라 가장 적합한 방법을 선택해야 합니다. 위의 예시는 조인 테이블을 사용한 간단한 예시로, 실제 상황에 맞게 적용해보셔야 합니다.
더 자세한 정보는 JPA (Java Persistence API)의 매핑 관련 문서를 참고하시기 바랍니다. 감사합니다!