hibernate关系映射和继承怎么实现?是怎么样的概念? 5
2个回答
展开全部
*1)父类和子类都有对应的表,使用<joined-subclass>定义继承关系,使用步骤如下
a.将父表和子表生成单表的基本映射
b.将子类添加extends父类
c.利用<joined-subclass>定义子类映射
从Hibernate3.0版本开始,可以将<joined-subclass>单独取出,放到一个hbm.xml中定义.格式如下
<hibernate-mapping>
<joined-subclass name="子类类型"
extends="父类类型"
table="子类表">
<key column="子类表关联字段"/>
//property字段映射
</joined-subclass>
</hibernate-mapping>
*2)父类和子类使用同一张数据表
选择题:
编号,题目,难度,选项,选择答案
简答题:
编号,题目,难度,简答答案
数据表Question
编号,题目,难度,选项,选择答案,简答答案,题目类型
使用<subclass>定义子类映射,具体步骤:
a.修改实体类,定义成父类和子类的结构
b.在映射文件中定义映射
<hibernate-mapping>
<class name="父类型" table="数据表">
//定义父类中属性的映射
<discriminator column="区分字段"/>
<subclass name="子类1"
discriminator-value="区分值">
//定义子类1中属性的映射
</subclass>
<subclass name="子类2"
discriminator-value="区分值">
//定义子类2中属性的映射
</subclass>
</class>
<hibernate-mapping>
以上是两种继承关系映射,注意一点<joined-subclass>配置的映射,对应两张表,两张实体类,两表的id应该是一一对应的,即同一个id代表的是一个实物,还有一但定义该映射,用hibernate查询时候 即使是 from 父类,获得的结果实际也是子类的一个list集合
a.将父表和子表生成单表的基本映射
b.将子类添加extends父类
c.利用<joined-subclass>定义子类映射
从Hibernate3.0版本开始,可以将<joined-subclass>单独取出,放到一个hbm.xml中定义.格式如下
<hibernate-mapping>
<joined-subclass name="子类类型"
extends="父类类型"
table="子类表">
<key column="子类表关联字段"/>
//property字段映射
</joined-subclass>
</hibernate-mapping>
*2)父类和子类使用同一张数据表
选择题:
编号,题目,难度,选项,选择答案
简答题:
编号,题目,难度,简答答案
数据表Question
编号,题目,难度,选项,选择答案,简答答案,题目类型
使用<subclass>定义子类映射,具体步骤:
a.修改实体类,定义成父类和子类的结构
b.在映射文件中定义映射
<hibernate-mapping>
<class name="父类型" table="数据表">
//定义父类中属性的映射
<discriminator column="区分字段"/>
<subclass name="子类1"
discriminator-value="区分值">
//定义子类1中属性的映射
</subclass>
<subclass name="子类2"
discriminator-value="区分值">
//定义子类2中属性的映射
</subclass>
</class>
<hibernate-mapping>
以上是两种继承关系映射,注意一点<joined-subclass>配置的映射,对应两张表,两张实体类,两表的id应该是一一对应的,即同一个id代表的是一个实物,还有一但定义该映射,用hibernate查询时候 即使是 from 父类,获得的结果实际也是子类的一个list集合
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询