Java 需要一个Hibernate ORM映射思想吗
我有一个tablestudent,列有stu_id、stu_name、favorite_subject、subject_id 最喜欢的科目将具有预定义的值,如数学、英语等。 如果值为数学,则subject_id将具有table:mathematics_subject's id 也就是说,根据Favorite_subject值,subject_id将指向相应的subject的id 如何在Hibernate ORM框架中实现Java 需要一个Hibernate ORM映射思想吗,java,hibernate,orm,mapping,Java,Hibernate,Orm,Mapping,我有一个tablestudent,列有stu_id、stu_name、favorite_subject、subject_id 最喜欢的科目将具有预定义的值,如数学、英语等。 如果值为数学,则subject_id将具有table:mathematics_subject's id 也就是说,根据Favorite_subject值,subject_id将指向相应的subject的id 如何在Hibernate ORM框架中实现 <hibernate-mapping package="co
<hibernate-mapping package="com.sample.project">
<class name="StudentDTO" table="student">
<meta attribute="class-description">class to hold student data</meta>
<id name="id" type="long" column="stu_id">
<generator class="increment"/>
</id>
<discriminator column="favourite_subject" type="string"/>
<property name="studentName" column="stu_name" not-null="true"/>
<!--?? here i don't know how to proceed. ??-->
<subclass name="??????" discriminator-value="Maths">
????
</subclass>
</class>
</hibernate-mapping>
所有科目都有自己的表和相应的实体类。假设采用以下类结构
class Student
{
private Subject favoriteSubject;
}
class MathSubject : Subject
{
}
class EnglishSubject : Subject
{
}
对应映射
<hibernate-mapping package="com.sample.project">
<class name="Student" table="student">
<meta attribute="class-description">class to hold student data</meta>
<id name="id" type="long" column="stu_id">
<generator class="increment"/>
</id>
<property name="studentName" column="stu_name" not-null="true"/>
<any name="subject" id-type="Integer" meta-type="String" cascade="all">
<meta-value value="math" class="MathSubject"/>
<meta-value value="english" class="EnglishSubject"/>
<column name="favourite_subject"/>
<column name="subject_id"/>
</any>
</class>
</hibernate-mapping>
连接子类或子类哪个适合这里?