关联关系

一对一 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. 洛谷 P4470 [BJWC2018]售票

    P4470 [BJWC2018]售票 C 市火车站最近出现了一种新式自动售票机.买票时,乘客要先在售票机上输入终点名称.一共有N 处:目的地,随着乘客按顺序输入终点名称的每个字母,候选终点站数目会逐渐 ...

  2. Eclipse-Java代码规范和质量检查插件-PMD

    PMD是一个源代码分析器. 它发现常见的编程缺陷,如未使用的变量.空catch块.不必要的对象创建等等. 它支持Java.JavaScript.Salesforce.com Apex.PLSQL.Ap ...

  3. Spring Boot-Logback 配置(区分环境、分包、分级别打印)

    <?xml version="1.0" encoding="UTF-8"?> <configuration> <!--生产环境 - ...

  4. js获取上传的文件名称

    <input name="file_" type="file" id="file_" size="100" /&g ...

  5. CentOS 7最小安装后,手动连接网络

    时间:2015-12-12 00:53来源:blog.51cto.com 作者:XD 举报 点击:3679次 CentOS中最小安装,由于默认的网卡没有激活,所以无法连接到网络. 设置如下: sucd ...

  6. linux一些硬件详情查看的高级方法(网卡,内存,硬盘,cpu)

    网卡-lspci内存大小和个数—— dmidecode|grep -A16 "Memory Device$"查看硬盘型号——smartctl -a /dev/sda查看硬盘大小—— ...

  7. MVC 登录后重定向来最初请求的 URL

    1.在登录的“Action” 方法中接收“ReturnUrl”参数. 2.在验证登录的“Action”方法中登录成功后,判断如果“ReturnUrl”不为空就跳转到“ReturnUrl”指向的页面. ...

  8. ios26--kvc

    // // main.m // 13-KVC的使用 // /** KVC: Key Value Coding(键值编码):1.取值赋值.2.字典转模型. */ #import <Foundati ...

  9. Use of implicitly declared global variable

    https://stackoverflow.com/questions/7604419/resharper-javascript-use-of-implicitly-declared-global-v ...

  10. pandas 绘图 机器学习看特征相关性

    pandas 绘图 import numpy as np import tflearn from tflearn.layers.core import dropout from tflearn.lay ...