1.   单项多对一映射

      custom(顾客)与order(订单) :一个顾客可以有多个订单,一个订单只能有一个顾客

      配置方法:在多的一端配置<many -to one>

      执行save操作时,1 先插入1的一端,再插入n的一端,只有insert语句

                              2 先插入n的一端,再插入1的一端,会多出update语句(因为在插入n的一端时,无法确定1的一端的外键值,

                                所以只能等1的一端插入后在额外发送 update语句)

                               所以推荐先插入1的一端,再插入n的一端;

      执行查询操作时:1 若查找多的一端的一个对象,默认情况下,只查询了多的一端的对象,而没有查询关联的一端的对象

                             2 在使用到关联的对象时,才会发送对应的SQL语句

                             3 在查询custom对象时,由多的一端导航到1的一端时,若Sesssion已关闭,则默认情况下,会发生懒加载异常

                             4 获取order对象时,默认情况下,其关联的custom对象是个代理对象

      执行delete操作时:1 在不设定级联关系的情况下,且1的一端的对象有多的对象在引用,则不能删除1 的一端的对象

 

2.  双向1对n(双向n对1)

      custom(顾客)与order(订单) 

      order 中 

      custom 中 private Set<order> orders =new HashSet<>();

                       <set name="orders" table="order" inverse="true" cascade="delete" >

                              <key column="custom_id"></key>

                              <one-to-many class="order" />

                        </set>

          table:Set中的元素对应的记录放在哪一个数据表中,该值需要和多对一的多的表名一致

          inverse:指定由哪一方来维护关联关系,通常设置为true,以指定由多的一端来维护关联关系

          cascade: 设定级联操作,开发时不建议设定该属性,建议以手工的方式来处理

          order-by:在查询时对集合中的元素进行排序,order-by使用的是表的字段名,而不是持久化类的属性名

 

     查询操作:1 对多的一端的集合采用延迟加载,

                   2 返回的多的一端的集合是Hibernate内置的集合类型,该类型具有延迟加载和存放代理对象的功能

                   3 可能会抛出懒加载的异常

                   4 在使用集合中的元素的时候进行初始化

                                 

                            

   

hibernate 一对多映射关系的更多相关文章

  1. hibernate(三) 一对多映射关系

    序言 前面两节讲了hibernate的两个配置文件和hello world!.还有hibernate的一级缓存和三种状态,基本上hibernate就懂一点了,从这章起开始一个很重要的知识点,hiber ...

  2. Hibernate学习(三)———— 一对多映射关系

    序言 前面两节讲了hibernate的两个配置文件和hello world!.还有hibernate的一级缓存和三种状态,基本上hibernate就懂一点了,从这章起开始一个很重要的知识点,hiber ...

  3. hibernate(3) —— 关系映射

    hibernate中关系映射指的是实体类与实体类间的关系.和数据库中表与表之间的关系类似,有一对一,多对一,一对多,多对多四种映射关系. 一:一对一映射 两个对象之间是一对一的关系,如人和身份证之间是 ...

  4. Hibernate注解关系映射

    Hibernate Annotation关系映射的几种类型映射用法及使用方法(说明:以前实例的实体是user和role,主键分别是userid和roleid)   1)一对一外键关联映射(单向) @O ...

  5. Hibernate表关系映射之一对多映射

    一.基本概述 在表中的一对多,是使用外键关联,通过一张表的一个键另一个表的外键来建立一多关系;而在类中表示为一个类中有一个集合属性包含对方类的很多对象,而在另一个类中,只包含前述类的一个对象,从而实现 ...

  6. Hibernate表关系03

    一. 一对多映射 1.基本应用 1.1 准备项目 创建项目:hibernate-02-relation 引入jar,同前一个项目 复制实体(客户).映射.配置.工具类 1.2 创建订单表 表名: t_ ...

  7. hibernate中表关系为多对多时,如何只删除中间表数据

    先说问题:我遇到的问题是,在用户和用户组对象关系中他们是多对多关系.所以中间是成在一张中间表的.经理要求当逻辑删除对象数据时,必须删除中间表中的数据. hibernate是面向对象操作sql语句的,如 ...

  8. Hibernate实体关系映射(OneToMany、ManyToOne双边)——完整实例

    双边关系是最常见的配置.在多方有一方的引用,一方也有多方的引用.双边关系能够很方便地查询数据.看一个班级与学生的双边关系. 班级(Clazz类)与学生(Student类):一对多关系.班级中有学生属性 ...

  9. Hibernate实体关系映射(OneToMany单边)——完整实例

    单边一对多关系:电子邮件管理 单边一对多关系:指一方有集合属性,包含多个多方,而多的一方没有一方的引用. 比如:用户(一)与电子邮件(多).一个用户可以有多个电子邮件记录. 目的:通过OneToMan ...

随机推荐

  1. MVC使用Membership配置

    MVC的权限管理,环境是MVC4.5,SQL Server2008 修改前 Web.config文件: <system.web> <authentication mode=" ...

  2. 前端工程师技能之photoshop巧用系列第五篇——雪碧图

    × 目录 [1]定义 [2]应用场景 [3]合并[4]实现[5]维护 前面的话 前面已经介绍过,描述性图片最终要合并为雪碧图.本文是photoshop巧用系列第五篇——雪碧图 定义 css雪碧图(sp ...

  3. mvc-1mvc和类(1)

    简单的控制器结构 var Controller = {}; //创建一个users控制器 (Controller.users = function ($) { var nameClick = func ...

  4. 【转】 GDB 常用调试方法

    一.多线程调试 多线程调试可能是问得最多的.其实,重要就是下面几个命令: info thread 查看当前进程的线程. thread <ID> 切换调试的线程为指定ID的线程. break ...

  5. 合并JS和CSS

    1.先来看看,不用合并js的情况,传输量大 1.1新建一个 [基本]的mvc项目 然后新建一个控制器HomeController,因为js会在很多视图中用到,所以此时我们添加一个视图带布局页Index ...

  6. PowerShell中调用外部程序和进程操作命令例子

    学习PowerShell,我们不指望通过C#编程去搞定所有事情,我们应该记住cmd.exe或者说批处理给我们留下的宝贵财富——通过调用外部程序去解决问题.调用了外部程序,势必就要对进程进行管理,这就是 ...

  7. 关于APICloud读取不到虚拟机及数据库的问题

    工具:apicloud编辑器 虚拟机:夜神虚拟机(nox_setup_v6.0.1.0_full)版本 数据库:Oracle 11G 以为夜神虚拟机版本太高,进程adb.exe读取不出虚拟机和数据库, ...

  8. 线程实现ServerSocket和Socket实现数据交互

    定义一个MyServer类 import java.io.IOException;import java.net.ServerSocket; public class MyServer { publi ...

  9. Swift中声明协议中的class关键字的作用

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 最近在Cocos2D编程for Swift中看到以下一个代码片 ...

  10. MySQL数据库聚合函数

    +++++++++++++++++++++++++++++++++++++++++++标题:MySQL数据库聚合函数时间:2019年2月25日内容:MySQL数据库聚合函数重点:MySQL数据库聚合函 ...