多对多的实体关系模型也很常见,如学生与课程的关系,一个学生可以选修多门课程,一门课程也可以被多名同学选修,在关系型数据库中对于处理这种多对多关联一般采用中间表的形式,将多对多的关系转化成两个一对多的关系。
部分示例代码如下:
课程实体:
import java.util.HashSet;
import java.util.Set;
public class Course {
private Integer id;
private String cname;
private Set<Student> students=new HashSet<Student>();
public Course() {
super();
// TODO Auto-generated constructor stub
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
public Set<Student> getStudents() {
return students;
}
public void setStudents(Set<Student> students) {
this.students = students;
}
}
学生实体:
import java.util.HashSet;
import java.util.Set;
public class Student {
private Integer id;
private String sname;
private Set<Course> courses=new HashSet<Course>();
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public Set<Course> getCourses() {
return courses;
}
public void setCourses(Set<Course> courses) {
this.courses = courses;
}
public Student() {
super();
// TODO Auto-generated constructor stub
}
}
Hibernate映射配置文件代码如下:
Course.hbm.xml:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.bjsxt.po">
<class name="Course" table="t_course" >
<id name="id">
<generator class="native"></generator>
</id>
<property name="cname"></property>
<set name="students" table="student_course" >
<key>
<column name="course_id"></column>
</key>
<many-to-many class="Student" column="student_id" ></many-to-many>
</set>
</class>
</hibernate-mapping>
Student.hbm.xml:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.bjsxt.po">
<class name="Student" table="t_student" >
<id name="id">
<generator class="native"></generator>
</id>
<property name="sname"></property>
<set name="courses" table="student_course" >
<key>
<column name="student_id"></column>
</key>
<many-to-many class="Course" column="course_id" ></many-to-many>
</set>
</class>
</hibernate-mapping>
分享到:
相关推荐
该资源包括了hibernate开发中的常见关联映射的源代码,其中包括:one2one,one2many,many2many等,还有继承映射,inverse,fetch,cascade关键字的应用等,对初学者来说,是很实用的,难度适中,很好理解
本教程“Hibernate关联映射.rar”聚焦于Hibernate中的关联映射,特别是多对一和一对多的关系映射,非常适合初学者了解和实践。 首先,我们要理解什么是关联映射。在数据库中,表与表之间存在各种关系,如一对一、一...
本教程通过源代码的形式,讲解如何在Hibernate中实现一对多主键关联映射,适用于初学者学习。 首先,我们需要理解一对多关联的基本概念。在数据库中,一个表的某一列(主键)可能与另一个表的多行相关联,比如一个...
在Hibernate框架中,关联映射是用于表示数据库表之间关联的关键机制之一。通过适当的关联映射,可以有效地管理对象之间的关系,并确保这些关系能够在数据库中得到正确的表示。根据描述,本文将详细介绍Hibernate中的...
Hibernate关联关系映射实例速查,帮助初学者学习。
总结,本教程通过"hibernate学习入门之一对多实体映射源码"引导初学者理解如何在Hibernate中建立和操作一对多的关系。通过源码学习,开发者可以更好地理解实体之间的关联以及如何在实际项目中有效地运用这些关系。
本文主要探讨的是Hibernate中的一对多关联映射,这是一种常见的关系数据库模型,用于表示实体间一对多的关系。 一对多关联映射在Hibernate中意味着一个实体(比如一个部门)可以与多个其他实体(如部门下的员工)相...
本实例主要探讨的是Hibernate的高级映射技术,包括单向一对一、单向多对一、单向一对多以及单向多对多这四种关系映射。 首先,我们来理解一下什么是映射。在Hibernate中,映射是将对象模型与关系数据库之间的桥梁,...
在Java的持久化框架Hibernate中,多对多(Many-to-Many)关系映射是一种常见的数据库交互模式,它用于表示两个实体之间复杂的关系。在这个场景中,一个实体可以与多个其他实体相关联,反之亦然。例如,在学生和课程...
10. **实体关系映射**:虽然标题提到“单表映射”,但可以扩展讨论到多对一、一对多、多对多等关联关系的映射。 通过这个“Hibernate初之单表映射学习例子”,初学者可以掌握Hibernate的基本操作,为进一步深入学习...
**标题与描述解析** ...从一对一、多对一到多对多的映射,以及使用SessionFactory和Session进行数据操作,都是初学者掌握Hibernate的重点。通过实际案例和练习,可以加深对这些概念的理解,提高开发效率。
对于初学者来说,通过阅读和分析这样的例子,能更好地理解和掌握Hibernate中一对多、多对一以及双向关联的实践应用。 总结,学习和理解Hibernate中的一对多、多对一和双向关联关系,对于开发基于Java的持久化层至关...
【hibernate 多对一映射】是关系数据库与对象模型之间的...通过上述介绍,相信初学者对Hibernate的多对一映射有了基本的理解。在实际项目中,理解并掌握这种映射关系,有助于更好地进行数据持久化操作,提高开发效率。
这个实例对于初学者理解如何在实际项目中应用Hibernate处理多对多关联特别有帮助。通过查看代码和运行示例,开发者可以深入理解Hibernate是如何自动处理复杂的关联操作,比如通过中间表实现多对多的添加、删除和查找...
4. Mapping:对象到表的映射,包括一对一、一对多、多对一和多对多的关系映射。 5. Cascade:级联操作允许在一个实体的保存、更新或删除时自动处理关联实体的操作。 6. Lazy Loading 和 Eager Loading:懒加载是在...
**关联映射Hibernate的Criteria用法详解** 在Java开发中,Hibernate作为一种强大的对象关系映射(ORM)框架,极大地简化了数据库操作。其中,Criteria API是Hibernate提供的一个动态查询工具,它允许开发者以面向...
5. 支持关联:处理一对多、一对一、多对多等关联关系,使得对象间的关联操作变得简单。 6. 缓存机制:提供了第一级缓存(Session级别)和第二级缓存(SessionFactory级别),提高数据访问速度。 四、简单案例 在...
本教程将深入探讨Hibernate中的表关联实例,帮助初学者理解如何在实际项目中实现不同表之间的关联。 一、一对一关联(One-to-One) 在数据库中,一对一关联意味着一个实体对应另一个实体的唯一实例。在Hibernate中...
这些资源可以帮助初学者理解一对一映射的实现过程,包括XML映射文件或Java注解的编写,以及如何在代码中操作这些对象。 一对一映射的优势在于它可以清晰地表达实体之间的关系,并且提供了方便的数据操作接口。然而...