Hibernate关联关系笔记

  • 单向N:1

    *  有连接表:在N方使用<join>/<many-to-one>。1方无需配置与之关联的持久化类。

    *  没有连接表:在N方使用<many-to-one>。1方无需配置与之关联的持久化类。

  • 单向1:N

    *  有连接表: 在1方使用<set>/<many-to-many>,在many-to-many中将unique属性设置为true。 N方无需配置与之关联的持久化类。

    *  没有连接表:在1方使用<set>/<one-to-many>。N方无需配置与之关联的持久化类。

    注:cascade属性在<set>上配置

  • 双向1:N

    *  有连接表:1方使用<set>/<many-to-many>并设置<many-to-many>的unique参数为true。N方使用<join>/<many-to-one>

    *  没有连接表:1方使用<set>/<one-to-many>。N方使用<many-to-one>

    注:只能在1的一方使用inverse放弃控制权,N的一方无法放弃控制权,因为没有inverse属性。

  • 单向N:N

    控制端使用<set>/<many-to-many>

  • 双向N:N

    两边都使用<set>/<many-to-many>

  • 单向1:1

    *  基于外键:控制端使用<many-to-one>,并设置<many-to-one>的unique属性为true。

    *  基于主键:控制端设置ID生成策略为foreign,并使用<one-to-one>标签。

    *  基于连接表:控制端使用<join>/<many-to-one>,并设置<many-to-one>的unique属性为true

  • 双向1:1

    *  基于外键:一方使用<many-to-one>并设置其unique参数为true。另一方使用<one-to-one>

    *  基于主键:一方设置ID生成策略为foreign,并使用<one-to-one>标签。另一方只使用<one-to-one>标签。

    *  基于连接表:两边都使用<join>/<many-to-one>。并都设置<join>下的<key>unique属性和<many-to-one>的unique属性为true。而且两边需要有一边设置inverse参数为true,即放弃控制权。

hibernate关联关系笔记的更多相关文章

  1. Hibernate学习笔记(二)

    2016/4/22 23:19:44 Hibernate学习笔记(二) 1.1 Hibernate的持久化类状态 1.1.1 Hibernate的持久化类状态 持久化:就是一个实体类与数据库表建立了映 ...

  2. Hibernate学习笔记(一)

    2016/4/18 19:58:58 Hibernate学习笔记(一) 1.Hibernate框架的概述: 就是一个持久层的ORM框架. ORM:对象关系映射.将Java中实体对象与关系型数据库中表建 ...

  3. Hibernate 学习笔记一

    Hibernate 学习笔记一 今天学习了hibernate的一点入门知识,主要是配置domain对象和表的关系映射,hibernate的一些常用的配置,以及对应的一个向数据库插入数据的小例子.期间碰 ...

  4. Hibernate关联关系映射

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

  5. Hibernate学习笔记-Hibernate HQL查询

    Session是持久层操作的基础,相当于JDBC中的Connection,通过Session会话来保存.更新.查找数据.session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库 ...

  6. Hibernate学习笔记四 查询

    HQL语法 1.基本语法 String hql = " from com.yyb.domain.Customer ";//完整写法 String hql2 = " fro ...

  7. hibernate关联关系的crud2

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

  8. Hibernate学习笔记(六)—— 查询优化

    一.Hibernate的抓取策略 1.1 什么是抓取策略 抓取策略是当应用程序需要在(Hibernate实体对象图的)关联关系间进行导航的时候,Hibernate如何获取关联对象的策略. HIbern ...

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

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

随机推荐

  1. Swift3.0P1 语法指南——类和结构体

    原档:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programmi ...

  2. hihoCoder 1196 高斯消元·二

    Description 一个黑白网格,点一次会改变这个以及与其连通的其他方格的颜色,求最少点击次数使得所有全部变成黑色. Sol 高斯消元解异或方程组. 先建立一个方程组. \(x_i\) 表示这个点 ...

  3. discuz上传图片提示附件文件无法保存

    两个可能: 1. 服务器文件夹权限不足 discuz附件保存在./data/attachments下,data文件夹的属性要求必须为777 #cd到data的上一级目录然后执行: data 2. 附件 ...

  4. PHP PDO的FETCH_NUM、FETCH_BOTH、FETCH_ASSOC

    不容易混淆的有:FETCH_CLASS,FETCH_COLUMN,FETCH_OBJ... 数据库的连接准备部分 $dsn = 'mysql:host=127.0.0.1;port=3306;dbna ...

  5. 微信支付Native扫码支付模式二之CodeIgniter集成篇

    CI:3.0.5 微信支付API类库来自:https://github.com/zhangv/wechat-pay 请先看一眼官方场景及支付时序图:https://pay.weixin.qq.com/ ...

  6. 无废话ExtJs 入门教程十九[API的使用]

    无废话ExtJs 入门教程十九[API的使用] extjs技术交流,欢迎加群(201926085) 首先解释什么是 API 来自百度百科的官方解释:API(Application Programmin ...

  7. WPF程序在Windows 7下应用Windows 8主题

    这篇博客介绍如何在Windows 7下应用Windows 8的主题. 首先我们先看一个很常见的场景,同样的WPF程序(样式未重写)在不同的操作系统上展示会有些不同.这是为什么呢?WPF程序启动时会加载 ...

  8. Android 笔记 day4

    单元测试

  9. 去掉移动端页面 input, textarea, button, a 标签获取焦点时显示的黑影

    input, textarea, button, a{ -webkit-tap-highlight-color:rgba(0,0,0,0); }

  10. [spring源码学习]五-BeanPostProcessor的使用

    一.接口描述 spring提供了一个接口类-BeanPostProcessor,我们叫他:bean的加工器,应该是在bean的实例化过程中对bean做一些包装处理,里边提供两个方法 public in ...