`
zhiweiofli
  • 浏览: 515513 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Hibernate学习手记(5)--关联映射

阅读更多

关于Hibernate的关联映射(annotation专版)

举一典型到老掉牙的例子说明:TeacherStudentCourse之间的关系。

TeacherCourse是一对一关系;

StudentCourse是一对多关系;

TeacherStudent是多对多关系;

....................

@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 全面学习->hibernate 关联映射学习

    本篇文章将全面探讨Hibernate的关联映射学习,包括一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)以及多对多(Many-to-Many)四种关系映射。 首先,一对一关联映射(One-to-One)是两个实体...

    hibernatetools-Update-4.1.1.Final_2013-12-08_01-06-33-B605.zip

    5. **映射文件与实体类同步**:当数据库表结构发生变化时,可以更新映射文件,保持与数据库的一致性。 6. **图形化实体关系模型(ER图)**:通过图形界面展示数据库表之间的关系,直观易懂。 7. **数据浏览与操作*...

    hibernate one-to-one 一对一唯一外键关联映射_单向 and 双向

    Hibernate 一对一唯一外键关联映射详解 Hibernate是一种流行的Java持久层框架,提供了多种关联映射方式,其中一对一唯一外键关联映射是一种常见的关联方式。在本文中,我们将详细介绍Hibernate一对一唯一外键关联...

    hibernate-configuration-3.0.dtd、hibernate-mapping-3.0.dtd

    《深入理解Hibernate配置与映射:hibernate-configuration-3.0.dtd与hibernate-mapping-3.0.dtd解析》 在Java世界里,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。而`hibernate-...

    hibernate many-to-many级联保存,级联更新,级联删除

    在Java的持久化框架Hibernate中,Many-to-Many关系是一种常见的数据库表之间的关联方式,它表示一个实体可以与多个其他实体进行关联,反之亦然。本文将深入探讨如何在Hibernate中处理Many-to-Many关系的级联保存、...

    hibernate学习5之one-to-many双向关联.docx

    在Hibernate框架中,双向一对多关联映射是常见的对象关系映射(ORM)方式,用于在Java对象模型中表示数据库中的两个实体之间的多对一关系。在这个场景中,"一"端通常指的是一个实体可以拥有多个另一个实体的实例,而...

    hibernate-commons-annotations-5.0.1.Final.jar

    总结,`hibernate-commons-annotations-5.0.1.Final.jar`是Hibernate框架的重要组成部分,通过提供丰富的元数据注解,简化了Java对象与数据库之间的映射工作。对它的源码进行深入学习,不仅能够增强对JPA和Hibernate...

    hibernatetools-Update-4.1.1.Final_2013-12-08_01-06-33-B605

    Hibernate Tools是开发者在使用Hibernate框架进行Java应用程序开发时的重要辅助工具,它为Eclipse IDE提供了强大的集成支持,包括对象关系映射(ORM)的可视化设计、逆向工程、数据库生成、HQL和SQL查询编辑等功能。...

    Hibernate one-to-many / many-to-one关系映射

    在"hibernate-father-son"这个例子中,可能包含两个实体类,如"Father"和"Son","Father"与多个"Son"之间存在一对多关系。在实际开发中,这种关系映射可以方便地处理父子级联操作,如级联保存、更新和删除。 四、...

    hibernate-release-5.2.10

    2. **库文件**:包含jar包,如hibernate-core.jar、hibernate-entitymanager.jar等,这些是我们在项目中引入Hibernate时需要用到的依赖库。 3. **文档**:通常包括用户指南、API文档、开发者文档等,这些文档提供了...

    HIBERNATE:Hibernate 学习一--注解方式自动建表

    这篇博客"Hibernate学习一--注解方式自动建表"主要探讨了如何使用Hibernate的注解来实现数据库表的自动化创建。 在Java编程中,注解(Annotation)是一种元数据,它提供了在代码中插入信息的方式,这些信息可以被...

    hibernate关联映射详解

    包含《多对多双向关联映射》《多对一单向关联映射》《多对一双向关联映射》《一对多单向关联映射》等文档,并有图解及例子,非常适合新手学习,尤其是刚刚接触hibernate,对映射关系不清楚的。。。。

    Hibernate稳定版(hibernate-release-5.3.23.Final.zip)

    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-jpa-2.0-api-1.0.1.Final.jar

    Hibernate实体关联关系映射--学习总结.pdf

    Hibernate实体关联关系映射--学习总结.pdf

    Hibernate稳定版(hibernate-release-5.6.2.Final.zip)

    Hibernate稳定版(hibernate-release-5.6.2.Final.zip),Hibernate ORM 是一个为应用程序、库和框架提供对象/关系映射 (ORM) 支持的库。它还提供了 JPA 规范的实现,这是 ORM 的标准 Java 规范。

    学习hibernate必看ppt--总结的很全面

    5. **hibernate创建事例**:这部分可能包含实际的项目案例,通过具体的代码示例来展示如何在实际开发中使用Hibernate,帮助学习者将理论知识应用到实践中。 【标签】:“hibernate hql” 这两个标签进一步确认了...

    Hibernate稳定版(hibernate-release-5.4.32.Final.zip)

    Hibernate稳定版(hibernate-release-5.4.32.Final.zip),Hibernate ORM 是一个为应用程序、库和框架提供对象/关系映射 (ORM) 支持的库。它还提供了 JPA 规范的实现,这是 ORM 的标准 Java 规范。

Global site tag (gtag.js) - Google Analytics