hibernate关联关系查询

Posted 情镌三分木,相思万骨书

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate关联关系查询相关的知识,希望对你有一定的参考价值。

关联关系

一对一 A中包含B的对象,B中包含A的对象

一对多 A中包含B的集合,B中包含A的对象

多对多 A中包含B的集合,B中包含A的集合

1,一对多配置

  一名老师可以对应多名学生

2,模型类

    老师类中包含学生的集合(通常可以将集合直接进行初始化)

    学生类中包含老师的对象

3,配置

  

 1 TeacherModel.hbm.xml(教师)
 2                 <hibernate-mapping package="cn.itcast.h3.realtion.one2many.vo" >
 3                     <class name="TeacherModel" table="tbl_teacher">
 4                         <id name="uuid">
 5                             <generator class="native"/>
 6                         </id>
 7                         <property name="teacherName"/>
 8                         <property name="nick"/>
 9                         <!-- name:集合对象名 -->
10             <set name="students">
11                 <!-- 使用key描述对应的关系表中的外键字段 -->
12                 <!-- column:外键字段名(student表中) -->
13                 <key column="teacherUuid"/>
14                 <!-- 使用one-to-many配置关联关系 -->
15                 <!-- class:配置对应的关系模型类 -->
16                 <one-to-many class="cn.itcast.h3.one2many.StudentModel"/>
17                         </set>
18                     </class>
19                 </hibernate-mapping>
20             注意:key元素必须出现在one-to-many元素的前面,否则报错
21             StudentModel.hbm.xml(学生)
22                 <hibernate-mapping package="cn.itcast.h3.realtion.one2many.vo" >
23                     <class name="StudentModel" table="tbl_student">
24                         <id name="uuid">
25                             <generator class="native"/>
26                         </id>
27                         <property name="studentName"/>
28                         <property name="className"/>
29                            <!-- 配置多对一关系中的一方对象 -->
30                         <!-- many-to-one描述多对一关系 -->
31                         <!-- name:对象名 -->
32                         <!-- column:外键字段名(student表中) -->
33                         <!-- class:配置对应的关系模型类 -->
34                         <many-to-one 
35                             name="teacher"
36                             column="teacherUuid"
37                             class="cn.itcast.h3.one2many.TeacherModel"
38                             />
39                     </class>
40                 </hibernate-mapping>

4,资源注册  

<mapping resource="cn/itcast/h3/one2many/vo/StudentModel.hbm.xml"/>
               <mapping resource="cn/itcast/h3/one2many/vo/TeacherModel.hbm.xml"/>

5,备注:

  两边的配置也可以只配置一方,

  如果仅仅配置老师可以通过老师找到学生,但是不能通过学生找到老师

  如果只配置学生可以通过学生找到老师,但是不能通过老师找到学生

  

 

 

  

以上是关于hibernate关联关系查询的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate中用left join(左外连接)查询映射中没有关联关系的两个表记录问题

持久层框架--hibernate

hibernate关联关系(多对多)

Hibernate中用left join(左外连接)查询映射中没有关联关系的两个表记录问题

Hibernate-ORM:11.Hibernate中的关联查询

java框架hibernate多对多如何进行关联查询