一对多关系可以分为单向和双向。
一对多关系单向
单向就是只能从一方找到另一方,通常是从主控类找到拥有外键的类(表)。比如一个母亲可以有多个孩子,并且孩子有母亲的主键作为外键。母亲与孩子的关系就是一对多的关系。如果想对母亲信息的操作同时也反应在其孩子信息上那么可以在母亲类配置文件的集合属性上配置cascade=”all”,表示对关联实体进行级联更新配置。
“主”端: 多的一端
/p>
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
一的一端:
/p>
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
一对多单向映射:多对一的映射关系是在多的一端进行维护的,一对多关系映射则由一端来维护这种关系。
“主”端:一的一端来维护这种关系 ,用set标签 在t_student的表中添加字段ClazzId来进行关联。
一对多关联映射利用了多对一关联映射原理:
多对一关联映射:在多的一端加入外键指向一的一端,他维护的关系是多指向一
一对多关联映射: 在多的一端加入外键指向一的一端,它维护的关系是一指向多
也就是说一对多和多对一的映射策略是一样的,只是站的角度不同。
在一的一端维护的关系的缺点: 如果经t_student 表里面的clazzId 字段设为非空,则无法保存。
一对多双向
一对多双向。在双向关联时每个Student都有一个clazz的引用,所以在配置clazz.hbm.xml文件时有些不同
/p>
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
在一一端的集合上使用,在对方表中加入一个外键指向一一端。
在多的一端要采用标签
https://www.cnblogs.com/oumyye/tag/java/default.html