hibernate关联关系笔记
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关联关系笔记的更多相关文章
- Hibernate学习笔记(二)
2016/4/22 23:19:44 Hibernate学习笔记(二) 1.1 Hibernate的持久化类状态 1.1.1 Hibernate的持久化类状态 持久化:就是一个实体类与数据库表建立了映 ...
- Hibernate学习笔记(一)
2016/4/18 19:58:58 Hibernate学习笔记(一) 1.Hibernate框架的概述: 就是一个持久层的ORM框架. ORM:对象关系映射.将Java中实体对象与关系型数据库中表建 ...
- Hibernate 学习笔记一
Hibernate 学习笔记一 今天学习了hibernate的一点入门知识,主要是配置domain对象和表的关系映射,hibernate的一些常用的配置,以及对应的一个向数据库插入数据的小例子.期间碰 ...
- Hibernate关联关系映射
1. Hibernate关联关系映射 1.1. one to one <class name="Person"> <id name="id" ...
- Hibernate学习笔记-Hibernate HQL查询
Session是持久层操作的基础,相当于JDBC中的Connection,通过Session会话来保存.更新.查找数据.session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库 ...
- Hibernate学习笔记四 查询
HQL语法 1.基本语法 String hql = " from com.yyb.domain.Customer ";//完整写法 String hql2 = " fro ...
- hibernate关联关系的crud2
hibernate关联关系的CRUD操作,解释都在注释里了,讲了fetchType.cascade. User类: package com.oracle.hibernate; import javax ...
- Hibernate学习笔记(六)—— 查询优化
一.Hibernate的抓取策略 1.1 什么是抓取策略 抓取策略是当应用程序需要在(Hibernate实体对象图的)关联关系间进行导航的时候,Hibernate如何获取关联对象的策略. HIbern ...
- Hibernate 关联关系(一对多)
Hibernate 关联关系(一对多) 1. 什么是关联(association) 1.1 关联指的是类之间的引用关系.如果类A与类B关联,那么被引用的类B将被定义为类A的属性.例如: class B ...
随机推荐
- 序列化对象为xml字符串
/// <summary> /// 序列化对象为xml字符串 /// </summary> /// <param name="obj" ...
- block、inline、inline-block
block: block - 块级元素 常见的块级元素包括:div,form,p,table,ul,ol,dl,h1~h6,pre block 可以包含 inlne 和 block 和 inline- ...
- Unity 3D学习之《Unity 3D 手机游戏开发》1
P10: 设置断点步骤02,在Project窗口右键(是在下图中的红色区域,点右键)选择[Sync Mono Develop Project],打开MonoDevelop编辑器 P11: " ...
- springMVC接收参数的几种方式
Spring3 MVC请求参数获取的几种方法 一. 通过@PathVariabl获取路径中的参数 @RequestMapping(value="user/{id}/{name}&q ...
- Win10 Build9926 更新问题解决
将Dns 改为 4.2.2.2 备用 4.2.2.1
- [Android Pro] android控件ListView顶部或者底部也显示分割线
reference to : http://blog.csdn.net/lovexieyuan520/article/details/50846569 在默认的Android控件ListView在 ...
- 编辑 Ext 表格(二)——— 编辑表格元素
一.编辑单元格 Ext 中通过配置表格的属性 plugins 来设置表格是否可编辑, 表格的配置具体如下: var gridTable = Ext.create('Ext.grid.Panel', { ...
- NYOJ题目28大数阶乘
-------------------------------------祭出BigInteger AC代码: import java.math.BigInteger; import java.uti ...
- 微信支付JSAPI模式及退款CodeIgniter集成篇
微信支付接口文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1 首先你得知道这个jsapi是不能离开微信进行调用支付的,明白 ...
- Oracle安装介质及补丁集下载地址
Oracle9i Database Release 2 Enterprise/Standard/Personal Edition for Windows NT/2000/XP http://downl ...