一对多双向关联映射(九)
来源:互联网 发布:淘宝如何代理话费充值 编辑:程序博客网 时间:2024/05/21 22:35
一对多双向关联映射
一对多双向关联映射,即在一的一端存在多的一端的一个集合对象,在多的一端存在一的一端的一个对象,这样就可以保证在加载一的一端或多的一端将被指向端的集合或对象加载上来,即保证双向关联。
一对多双向关联映射和一对多单向关联映射的异同
一对多双向关联映射相应的类结构图和代码。具体如下:- public class Classes {
- private int id;
- private String name;
- private Set students;
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public Set getStudents() {
- return students;
- }
- public void setStudents(Set students) {
- this.students = students;
- }
- }
- public class Student {
- private int id;
- private String name;
- private Classes classes;
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public Classes getClasses() {
- return classes;
- }
- public void setClasses(Classes classes) {
- this.classes = classes;
- }
- }
public class Classes {private int id;private String name;private Set students;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Set getStudents() {return students;}public void setStudents(Set students) {this.students = students;}}public class Student {private int id;private String name;private Classes classes;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Classes getClasses() {return classes;}public void setClasses(Classes classes) {this.classes = classes;}}
通过对比之前我们在上篇博文Hibernate从入门到精通(八)一对多单向关联映射中的关于一对多单向关联映射的相应的类结构图和代码。可以发现,一对多双向关联向和单向关联的区别主要是在多的一端加入了一的一端的对象,这就将单向关联变成了双向关联。
为了更好说明两者的区别,我们再看一下一对多双向关联映射的表结构和相应的Hibernate映射配置。具体如下:
- <class name="com.zs.hibernate.Classes" table="t_classes">
- <id name="id">
- <generator class="native"/>
- </id>
- <property name="name"/>
- <set name="students" inverse="true">
- <key column="classesid"/>
- <one-to-many class="com.zs.hibernate.Student"/>
- </set>
- </class>
- <class name="com.zs.hibernate.Student" table="t_student">
- <id name="id">
- <generator class="native"/>
- </id>
- <property name="name"/>
- <many-to-one name="classes" column="classesid"/>
- </class>
<class name="com.zs.hibernate.Classes" table="t_classes"><id name="id"><generator class="native"/></id><property name="name"/><set name="students" inverse="true"><key column="classesid"/><one-to-many class="com.zs.hibernate.Student"/></set></class><class name="com.zs.hibernate.Student" table="t_student"><id name="id"><generator class="native"/></id><property name="name"/><many-to-one name="classes" column="classesid"/></class>
从存储结构上看,一对多单向关联和双向关联没有什么区别,但是从配置文件上看,一对多双向关联的配置文件中在多的一端的配置文件上存在<many-to-one />的相关配置,即保证多对一的映射,这就保证了双向。
- 一对多双向关联映射(九)
- 一对多关联映射(双向)
- Hibernate从入门到精通(九)一对多双向关联映射
- Hibernate从入门到精通(九)一对多双向关联映射
- hibernate一对多关联映射(双向关联)(转)
- Hibernate 一对多关联映射(双向关联)
- Hibernate关联映射 --- 一对多实例分析(双向关联)
- 一对多关联映射(双向关联)见项目:me_one_to_many2
- hibernate 关联映射 双向多对一(一对多)
- hibernate笔记(双向一对多关联映射)
- 【Hibernate步步为营】--(一对多映射)之双向关联
- 【Hibernate步步为营】--(一对多映射)之双向关联
- 【Hibernate步步为营】--(一对多映射)之双向关联
- 06映射一对多双向关联关系
- Hibernate一对多关联双向映射
- 一对多自身关联双向映射
- hibernate映射一对多双向关联关系
- Hibernate一对多双向关联映射
- mysql忘记密码怎么办
- 谷歌地图纠偏数据库
- 掌握 Ajax,第 1 部分: Ajax 入门简介
- Android 中的BroadCastReceiver
- 日期比较
- 一对多双向关联映射(九)
- C语言自动类型转换
- 重定向中input 和output相同的情况
- linux系统监视工具vmstat
- python中文处理
- 中文乱码解决方式
- 如何动态调用DLL中的导出类
- Eclipse插件-添加自定义右键插件
- linux驱动学习(六) 应用中的linux驱动 platform_device