Hibernate 다형성 매핑은 상속된 클래스를 데이터베이스에 매핑하여 다음 매핑 유형을 제공할 수 있습니다. Joined-subclass: 상위 클래스의 모든 열을 포함하여 하위 클래스에 대한 별도의 테이블을 만듭니다. 클래스별 테이블: 하위 클래스별 열만 포함하는 하위 클래스에 대한 별도의 테이블을 만듭니다. Union-subclass: Joined-subclass와 유사하지만 상위 클래스 테이블이 모든 하위 클래스 열을 조인합니다.
Hibernate 다형성 매핑: 심층 분석
소개
객체 지향 프로그래밍에서는 일반적으로 상속된 클래스를 데이터베이스에 매핑해야 하는 상황에 직면하게 됩니다. Hibernate는 다형성 매핑 기능을 통해 이 요구 사항을 쉽게 달성할 수 있습니다.
다형성 매핑 유형
Hibernate는 상속된 클래스 간의 관계를 처리하기 위한 여러 다형성 매핑 유형을 제공합니다.
joined-subclass
와 유사하지만 상위 클래스 테이블의 모든 하위 클래스 열을 통합합니다. joined-subclass
类似,但在父类表中联合所有子类的列。实战案例
假设我们有一个抽象类 Person
,有两个子类 Student
和 Teacher
。Person
类有 id
和 name
字段,Student
类有 grade
字段,Teacher
类有 salary
字段。
Hibernate 映射配置
对于 Person
类:
@Entity @Inheritance(strategy = InheritanceType.JOINED) public abstract class Person { @Id private Long id; private String name; // ... 省略其他字段 }
对于 Student
类:
@Entity public class Student extends Person { private Integer grade; // ... 省略其他字段 }
对于 Teacher
실용 사례
추상 클래스 Person
과 두 개의 하위 클래스 Student
및 Teacher
가 있다고 가정합니다. Person
클래스에는 id
및 name
필드가 있고, Student
클래스에는 grade</code > 필드, < code>Teacher
클래스에는 salary
필드가 있습니다.
Person
클래스의 경우:
@Entity public class Teacher extends Person { private Integer salary; // ... 省略其他字段 }
Student
클래스의 경우: Session session = sessionFactory.getCurrentSession(); List<Person> persons = session.createQuery("from Person", Person.class).list();
Teacher
클래스의 경우: Hibernate는 상속 전략에 따라 하위 클래스 데이터를 자동으로 로드합니다.
장점위 내용은 Hibernate는 어떻게 다형성 매핑을 구현합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!