a.将父表和子表生成单表的基本映射
b.将子类添加extends父类
c.利用
从Hibernate3.0版本开始,可以将
//property字段映射
*2)父类和子类使用同一张数据表
选择题:
编号,题目,难度,选项,选择答案
简答题:
编号,题目,难度,简答答案
数据表Question
编号,题目,难度,选项,选择答案,简答答案,题目类型
使用
a.修改实体类,定义成父类和子类的结构
b.在映射文件中定义映射
//定义父类中属性的映射
//定义子类1中属性的映射
//定义子类2中属性的映射
以上是两种继承关系映射,注意一点
基本上都比较常用,非说那个不常用的话一对一用得可能能少点,下面说下我的理解,我尽量说通俗点
我下面就举几个例子你就明白了:
1、一对一,比如一个表的字段有100多个,而且其中有40个其他表可能有用,那么你把这个表拆分成两个表,并且两个表中的数据都是一条记录对应一条记录,某一个表中存放另一个对应表的id用来维护两个记录之间的关系,因为本来这两条记录原来就是一条记录,不知道这么说你能明白吗?
2、一对多,如:部门表与用户表,一个部门是不是有多个用户,但是一个用户有且只有一个部门,很清晰了吧
3、多对一,相当于吧部门表与用户表打颠倒
4、多对多,其实就是一对多与多对一结合起来实现的关系,如用户表与权限表,一个用户有多个权限,而一个权限同时对应多个用户,两个结合起来就是多对多
5、单向双向只是hibernate的概念,比如你这两个表a---表b,这样通过表a来维护表b的数据,但是表b不能维护表a,这就是单项,双向现在应该就好解释了,通过两个表都可以相互管理对方的数据。书面点,单项就是由父类管理关联关系,子类无法管理,双向父类子类都可管理。
hibernate提出的这些关系都有相应的配置,其实这些关系在数据库中一直是存在的,只是hibernate对这些关系都通过不同的配置实现,单向和双向也有相应的配置,这些功能当然也可以不通过hibernate配置实现,自己在代码中维护这块关系也可以,单双向,数据库中没有类似相关概念,hibernate提出这块功能,我们可以通过配置完成他们的限制功能。想想如果我们代码只提供用户表管理部门表的功能,不给通过部门管理用户的方法,那么这是不是就类似于hibernate的单向概念呢?
时间有限就说这么多,都是自己在项目中的一些积累,可能有些地方理解不够深刻,包含包含