关于Hibernate的关联映射(annotation专版)
举一典型到老掉牙的例子说明:Teacher、Student与Course之间的关系。
Teacher与Course是一对一关系;
Student与Course是一对多关系;
Teacher与Student是多对多关系;
....................
@Entity
@Table(name="Student")
publicclassStudent{
privateintid;
privateStringname;
privateStringsex;
privateCoursecourse;
privateSet<Teacher>teachers=newHashSet<Teacher>();
//建立Student与Teacher的双向多对多关联
@ManyToMany(mappedBy="students")
publicSet<Teacher>getTeachers(){
returnteachers;
}
publicvoidsetTeachers(Set<Teacher>teachers){
this.teachers=teachers;
}
//单向多对一关联
@ManyToOne
publicCoursegetCourse(){
returncourse;
}
publicvoidsetCourse(Coursecourse){
this.course=course;
}
@Id
@Column(name="s_id")
publicintgetId(){
returnid;
}
@Column(name="s_name")
publicStringgetName(){
returnname;
}
@Column(name="s_sex")
publicStringgetSex(){
returnsex;
}
.............
}
..............................................
@Entity
@Table(name="Teacher")
publicclassTeacher{
privateintid;
privateStringname;
privateStringsex;
privateStringtitle;
privateCoursecourse;
privateSet<Student>students=newHashSet<Student>();
//Teacher与Student的单向多对多联系
@ManyToMany
@JoinTable(name="t_s",
joinColumns={@JoinColumn(name="t_id")},
inverseJoinColumns={@JoinColumn(name="s_id")}
)
//设置多对多关系的中间表,其中joinColumns属性里面指向本实体数据表的关联字段,
//inverseJoinColumns属性则指向中间表的另一关联字段对应的数据表的关联字段
publicSet<Student>getStudents(){
returnstudents;
}
publicvoidsetStudents(Set<Student>students){
this.students=students;
}
//Teacher与Course的一对一关联
@OneToOne
@JoinColumn(name="Course_id")
//JoinColumn,指定Course表的外键
publicCoursegetCourse(){
returncourse;
}
publicvoidsetCourse(Coursecourse){
this.course=course;
}
@Id
@Column(name="t_id")
publicintgetId(){
returnid;
}
@Column(name="t_name")
publicStringgetName(){
returnname;
}
@Column(name="t_sex")
publicStringgetSex(){
returnsex;
}
@Column(name="t_title")
publicStringgetTitle(){
returntitle;
}
..................
}
..........................
@Entity
@Table(name="Course")
publicclassCourse{
privateintid;
privateStringname;
privateStringscore;
privateSet<Student>student=newHashSet<Student>();
privateTeacherteacher;
/*
*为实现双向的一对一关联,添加属性mappedBy,使确定该实体被映射在teacher中的course属性上,主导放在多的一方
**/
@OneToOne(mappedBy="course")
publicTeachergetTeacher(){
returnteacher;
}
publicvoidsetTeacher(Teacherteacher){
this.teacher=teacher;
}
/*
*为实现双向的多对一关联,添加属性mappedBy,使确定该实体被映射在student中的course属性上,主导放在多的一方
**/
@OneToMany(mappedBy="course")
//单向一对多关联
//@JoinColumn(name="Course_id")
publicSet<Student>getStudent(){
returnstudent;
}
publicvoidsetStudent(Set<Student>student){
this.student=student;
}
@; background: #c0c0c0; colo
分享到:
相关推荐
本篇文章将全面探讨Hibernate的关联映射学习,包括一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)以及多对多(Many-to-Many)四种关系映射。 首先,一对一关联映射(One-to-One)是两个实体...
5. **映射文件与实体类同步**:当数据库表结构发生变化时,可以更新映射文件,保持与数据库的一致性。 6. **图形化实体关系模型(ER图)**:通过图形界面展示数据库表之间的关系,直观易懂。 7. **数据浏览与操作*...
Hibernate 一对一唯一外键关联映射详解 Hibernate是一种流行的Java持久层框架,提供了多种关联映射方式,其中一对一唯一外键关联映射是一种常见的关联方式。在本文中,我们将详细介绍Hibernate一对一唯一外键关联...
《深入理解Hibernate配置与映射:hibernate-configuration-3.0.dtd与hibernate-mapping-3.0.dtd解析》 在Java世界里,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。而`hibernate-...
在Java的持久化框架Hibernate中,Many-to-Many关系是一种常见的数据库表之间的关联方式,它表示一个实体可以与多个其他实体进行关联,反之亦然。本文将深入探讨如何在Hibernate中处理Many-to-Many关系的级联保存、...
在Hibernate框架中,双向一对多关联映射是常见的对象关系映射(ORM)方式,用于在Java对象模型中表示数据库中的两个实体之间的多对一关系。在这个场景中,"一"端通常指的是一个实体可以拥有多个另一个实体的实例,而...
总结,`hibernate-commons-annotations-5.0.1.Final.jar`是Hibernate框架的重要组成部分,通过提供丰富的元数据注解,简化了Java对象与数据库之间的映射工作。对它的源码进行深入学习,不仅能够增强对JPA和Hibernate...
Hibernate Tools是开发者在使用Hibernate框架进行Java应用程序开发时的重要辅助工具,它为Eclipse IDE提供了强大的集成支持,包括对象关系映射(ORM)的可视化设计、逆向工程、数据库生成、HQL和SQL查询编辑等功能。...
在"hibernate-father-son"这个例子中,可能包含两个实体类,如"Father"和"Son","Father"与多个"Son"之间存在一对多关系。在实际开发中,这种关系映射可以方便地处理父子级联操作,如级联保存、更新和删除。 四、...
2. **库文件**:包含jar包,如hibernate-core.jar、hibernate-entitymanager.jar等,这些是我们在项目中引入Hibernate时需要用到的依赖库。 3. **文档**:通常包括用户指南、API文档、开发者文档等,这些文档提供了...
这篇博客"Hibernate学习一--注解方式自动建表"主要探讨了如何使用Hibernate的注解来实现数据库表的自动化创建。 在Java编程中,注解(Annotation)是一种元数据,它提供了在代码中插入信息的方式,这些信息可以被...
包含《多对多双向关联映射》《多对一单向关联映射》《多对一双向关联映射》《一对多单向关联映射》等文档,并有图解及例子,非常适合新手学习,尤其是刚刚接触hibernate,对映射关系不清楚的。。。。
Hibernate稳定版(hibernate-release-5.3.23.Final.zip),Hibernate ORM 是一个为应用程序、库和框架提供对象/关系映射 (ORM) 支持的库。它还提供了 JPA 规范的实现,这是 ORM 的标准 Java 规范。
hibernate-jpa-2.0-api-1.0.1.Final.jar
Hibernate实体关联关系映射--学习总结.pdf
Hibernate稳定版(hibernate-release-5.6.2.Final.zip),Hibernate ORM 是一个为应用程序、库和框架提供对象/关系映射 (ORM) 支持的库。它还提供了 JPA 规范的实现,这是 ORM 的标准 Java 规范。
5. **hibernate创建事例**:这部分可能包含实际的项目案例,通过具体的代码示例来展示如何在实际开发中使用Hibernate,帮助学习者将理论知识应用到实践中。 【标签】:“hibernate hql” 这两个标签进一步确认了...
Hibernate稳定版(hibernate-release-5.4.32.Final.zip),Hibernate ORM 是一个为应用程序、库和框架提供对象/关系映射 (ORM) 支持的库。它还提供了 JPA 规范的实现,这是 ORM 的标准 Java 规范。