关联关系

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

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

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

1,一对多配置

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

2,模型类

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

    学生类中包含老师的对象

3,配置

  

 TeacherModel.hbm.xml(教师)
<hibernate-mapping package="cn.itcast.h3.realtion.one2many.vo" >
<class name="TeacherModel" table="tbl_teacher">
<id name="uuid">
<generator class="native"/>
</id>
<property name="teacherName"/>
<property name="nick"/>
<!-- name:集合对象名 -->
<set name="students">
<!-- 使用key描述对应的关系表中的外键字段 -->
<!-- column:外键字段名(student表中) -->
<key column="teacherUuid"/>
<!-- 使用one-to-many配置关联关系 -->
<!-- class:配置对应的关系模型类 -->
<one-to-many class="cn.itcast.h3.one2many.StudentModel"/>
</set>
</class>
</hibernate-mapping>
注意:key元素必须出现在one-to-many元素的前面,否则报错
StudentModel.hbm.xml(学生)
<hibernate-mapping package="cn.itcast.h3.realtion.one2many.vo" >
<class name="StudentModel" table="tbl_student">
<id name="uuid">
<generator class="native"/>
</id>
<property name="studentName"/>
<property name="className"/>
<!-- 配置多对一关系中的一方对象 -->
<!-- many-to-one描述多对一关系 -->
<!-- name:对象名 -->
<!-- column:外键字段名(student表中) -->
<!-- class:配置对应的关系模型类 -->
<many-to-one
name="teacher"
column="teacherUuid"
class="cn.itcast.h3.one2many.TeacherModel"
/>
</class>
</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关联关系查询的更多相关文章

  1. Hibernate关联关系映射

    1.  Hibernate关联关系映射 1.1.  one to one <class name="Person"> <id name="id" ...

  2. Hibernate【查询、连接池、逆向工程】

    前言 在Hibernate的第二篇中只是简单地说了Hibernate的几种查询方式....到目前为止,我们都是使用一些简单的主键查询阿...使用HQL查询所有的数据....本博文主要讲解Hiberna ...

  3. Hibernate:查询

    本文内容 OID查询 对象导航查询 HQL查询 QBC查询 SQL查询 首发日期:2018-07-31 hibernate的查询方式: hibernate有很多查询方式 OID查询 对象导航查询: H ...

  4. hibernate关联关系的crud2

    hibernate关联关系的CRUD操作,解释都在注释里了,讲了fetchType.cascade. User类: package com.oracle.hibernate; import javax ...

  5. Hibernate 关联关系(一对多)

    Hibernate 关联关系(一对多) 1. 什么是关联(association) 1.1 关联指的是类之间的引用关系.如果类A与类B关联,那么被引用的类B将被定义为类A的属性.例如: class B ...

  6. hibernate模糊查询

    hibernate模糊查询-Restrictions.ilike & Expression.like Criteria criteria = session.createCriteria(Ta ...

  7. hibernate关联关系笔记

    Hibernate关联关系笔记 单向N:1 *  有连接表:在N方使用<join>/<many-to-one>.1方无需配置与之关联的持久化类. *  没有连接表:在N方使用& ...

  8. Hibernate的查询方式总结

    Hibernate的查询方式大体有三种,分别是HQL QBC和SQL三种.在网上查阅一一些资料,做了一个简单的总结. 1. SQL sql 是面向数据库表查询,from 后面跟的是表名,where 后 ...

  9. atitit。 hb Hibernate sql 查询使用

    atitit. hb  Hibernate sql 查询使用 #----------返回list<map>法..这个推荐使用.      q.setResultTransformer(Tr ...

随机推荐

  1. [bzoj2882]工艺_后缀数组

    工艺 bzoj-2882 题目大意:题目链接. 注释:略. 想法: 跟bzoj1031差不多啊. 把串倍长后扫$sa$数组. 最后再统计答案即可. Code: #include <iostrea ...

  2. Warm up-HUD4612(树的直径+Tarjin缩点)

    http://acm.hdu.edu.cn/showproblem.php?pid=4612 题目大意:求加一条边最小的桥数 先用Tarjin缩点求出一棵树,然后用bfs求出树的直径,树的直径就是加一 ...

  3. Vue中对获取的数据进行重新排序

    var Enumerable = require('linq'); // 使用linq 按照RegisterID排序listJust是自己定义的数组,来接收数据.listJust: [] addDat ...

  4. hdu 2544 最短路(SPFA算法)

    本题链接:点击打开链接 本题大意: 首先输入一个n,m.代表有n个点.m条边.然后输入m条边,每条边输入两个点及边权.1为起点,n为终点.输入两个零表示结束. 解题思路: 本题能够使用SPFA算法来做 ...

  5. 改动select默认样式,兼容IE9

    前面有篇文章已经提供了怎样改动select标签的默认样式,可是仅仅能兼容到ie10,要兼容ie9仅仅能模拟一个类似的 html结构: <div class="select_diy&qu ...

  6. 关于Windows 8使用WMP播放音乐时WUDFHost跑CPU和硬盘的问题解决

    Windows 8使用Windows Media Player播放音乐的时候.事实上有一个这种情况,WMP和某个什么名字看起来非常屌的进程跑CPU非常高,这个跑非常高视你插入的SD卡内的文件数或者移动 ...

  7. 1.1 Spring概述

        Spring是分层的Java SE/EE应用一站式的轻量开源框架,以 反转控制(Inverse of Control,IoC).面向切面编程(Aspect Oriented Programmi ...

  8. 从零開始学android&lt;Bitmap图形组件.四十七.&gt;

    android.graphics.Bitmap(位图)是Android手机中专门提供的用于操作图片资源的操作类,使用此类能够直接从资源文件之中进行图片资源的读取.而且对这些图片进行一些简单的改动. 经 ...

  9. android插件化-apkplug从宿主启动插件Activity-06

    插件是一个apk文件它存在自己的Activity界面和UI显示,本节将解说如何配置插件的启动Activity以及如何从宿主启动它. 一 配置插件apk的对外启动Activity (内部activity ...

  10. ZOJ 3684 Destroy 树的中心

    中心节点就是树的中心,2遍dfs求到树的直径.而中心一定在直径上,顺着直径找到中心就够了. 然后能够一遍树形DP找到最小值或者二分+推断是否訪问到叶子节点. #include <iostream ...