关联关系映射
一对多关联关系:
一对多关联关系是比较常用的关系之一比如:
留言和回复、班级和学生、类别和商品 都是典型的一对多关联关系。在数据库表中的一对多关联关系主要通过外键来建立两表之间的关系
在Hibernate的关联中,添加关联属性,如本例所示,应该在Grade类中添加Set类型的students属性实现和Student之间的一对多单向关联关系
package com.zx.model; public class Student { private int studentID; private String studentName; public int getStudentID() { return studentID; } public void setStudentID(int studentID) { this.studentID = studentID; } public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studentName = studentName; } } package com.zx.model; import java.util.HashSet; import java.util.Set; public class Grade { private int gradeID; private String gradeName; private String gradeDesc; private Set<Student> students = new HashSet<Student>(); public int getGradeID() { return gradeID; } public void setGradeID(int gradeID) { this.gradeID = gradeID; } public String getGradeName() { return gradeName; } public void setGradeName(String gradeName) { this.gradeName = gradeName; } public String getGradeDesc() { return gradeDesc; } public void setGradeDesc(String gradeDesc) { this.gradeDesc = gradeDesc; } public Set<Student> getStudents() { return students; } public void setStudents(Set<Student> students) { this.students = students; } }
然后在关联映射文件Grade.hbm.xml中为刚刚添加的集合属性students建立映射信息,如下:
<hibernate-mapping package="com.zx.model"> <class name="Grade" table="grade"> <id name="gradeID" column="gradeID" type="integer"> <generator class="native" /> </id> <property name="gradeName" type="string" column="gradeName" /> <property name="gradeDesc" type="string" column="gradeDesc" /> <set name="students" lazy="false"> <key column="gradeID" /> <one-to-many class="com.zx.model.Student"/> </set> </class> </hibernate-mapping>
key : 指定的关联表中的外键,也就是说这里指的是 Student表中的外键 GradeID
one-to-many : 指的是关联类型为com.demo.Student类
测试:
public static void main(String[] args) { Configuration configuration = new Configuration().configure(); SessionFactory sessionFactory = configuration.buildSessionFactory(); Session session = sessionFactory.openSession(); Grade g = (Grade)session.get(Grade.class, 1); Iterator<Student> it = g.getStudents().iterator(); while(it.hasNext()){ Student s = it.next(); System.out.println(g.getGradeName() + ":" + s.getStudentName()); } }
相关推荐
1:Hibernate的关联映射,存在一对多和多对一映射,多对多映射: 1.1:一对多和多对一映射,举例说明: 学生和老师: 一个老师可以教多个学生 【一对多映射】 多个学生可以被一个老师教【多对一映射】 部门与员工: ...
http://blog.csdn.net/e421083458/article/details/8794127 该源码为Hibernate教程配套源码
http://blog.csdn.net/e421083458/article/details/8794127 该源码为Hibernate教程配套源码
http://blog.csdn.net/e421083458/article/details/8794127 该源码为Hibernate教程配套源码
http://blog.csdn.net/e421083458/article/details/8794127 该源码为Hibernate教程配套源码
http://blog.csdn.net/e421083458/article/details/8794127 该源码为Hibernate教程配套源码
http://blog.csdn.net/e421083458/article/details/8794127 该源码为Hibernate教程配套源码
http://blog.csdn.net/e421083458/article/details/8794127 该源码为Hibernate教程配套源码
标签是Mabits动态SQL中最常用的一个标签之一,它的作用是根据给定条件包含或排除不同的部分,以生成不同的SQL语句。在XML文件中,标签通常被嵌套在其他标签内,如、和等标签内,用于控制生成的SQL语句的结构和内容。...
所谓关联映射就是将关联关系映射到数据库里,在对象模型中就是一个或多个引用。下面这篇文章详细的给大家介绍了Hibernate映射解析之关联映射的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
图14-11ClassD与ClassA为多对一多态关联关系ClassA、ClassB和ClassC构成了一棵继承关系树,如果继承关系树的根类对应一个表,或者每个类对应一个表,那么可以按以下方式映射ClassD的a属性:<many-to-onename="a...
hibernate多对一的关联关系定义: 和单向一对多不同的是:一对多是在意的一方的一方定义set集合,在映射文件中 :单向多对一,简单很多在多的一方定义一的一方类的实例,在映射文件中: 持久化类 column=...
12.4.5 多对一单向关联的annotation注解实现538 12.4.6 一对多双向关联的annotation注解实现540 12.4.7 一对多双向自身关联的annotation注解实现542 12.4.8 多对多单向关联的annotation注解实现543 12.4.9 多对多...
表14-1比较三种映射方式如果不需要支持多态查询和多态关联,可以采用每个具体类对应一个表的映射方式,如果需要支持多态查询和多态关联,并且子类包含的属性不多,可以采用根类对应一个表的映射方式,如果需要支持...
在这种映射方式下,继承关系树的每个类以及接口都对应一个...图14-6继承关系树的每个类对应一个表图14-7持久化类、映射文件和数据库表之间的对应关系14.3.1创建映射文件从Company类到Employee类是多态关联,由于关系数
对象关系映射该软件包未积极维护如果您要开始一个新项目,请考虑使用以下方法之一,因为他们的社区更加活跃: 安装npm install ormNode.js版本支持支持:4.0 + 测试在上运行如果需要,可以在本地运行测试: npm ...
多对一(Many-to-one) 2.2.5.3. 集合类型 2.2.5.4. 用cascading实现传播性持久化(Transitive persistence) 2.2.5.5. 关联关系获取 2.2.6. 映射复合主键与外键 2.2.7. 映射二级表(secondary tables) 2.3. 映射...
第30部分 继承与建模高级应用之多对多关联 第31部分 继承与建模高级应用之自引用关联 第32部分 继承与建模高级应用之TPH与TPT (1) 第33部分 继承与建模高级应用之TPH与TPT (2) 第34部分 继承与建模高级应用之多条件...