hibernate 中映射关系配置
多对多 :
外键维护权,一方放弃inverse="true",并且不放弃维护权的一方,加入 cascade="save-update":推荐方案
Student {
// 一个学生对应 多门课
// Set
Set<Cource> cources ;
}
Cource {
// 一门课,多个学生
Set<Student> students ;
}
<!--
set:配置多对多
private Set<Course> courses = new HashSet<Course>();
* set name:表示集合的属性名称
* table="":表示中间表的名称
* key column="":对应中间表中Studuent对应的外键列的名称
* many-to-many class="":表示集合属性名称对应的实体类型(全路径)
* column="":对应中间表中Course对应的外键列的名称
-->
<set name="courses" table="t_s_c">
<key column="sid"></key>
<many-to-many class="cn.ibbidream.b_manyToMany.Course" column="cid"></many-to-many>
</set> <!--
set:配置多对多
Set<Student> students = new HashSet<Student>();
* set name:表示集合的属性名称
* table="":表示中间表的名称
* key column="":对应中间表中Course对应的外键列的名称
* many-to-many class="":表示集合属性名称对应的实体类型(全路径)
* column="":对应中间表中Student对应的外键列的名称
-->
<set name="students" table="t_s_c">
<key column="cid"></key>
<many-to-many class="cn.ibbidream.b_manyToMany.Student" column="sid"></many-to-many>
</set>
一对多 :
一般是在一方放弃。(从业务场景上来分析,一般先存1 方,再存多方,那么就存多方的时候建立关系就比较合理。)inverse="true"
Customer {
// 一个客户 多个订单
Set<Order> orders ;
}
Order {
// 一个订单 一个客户
Customer customer ;
}
hbm 文件配置
<!--
多的一端的映射
private Customer customer;
* name="":表示对象的属性名称
* class="":表示对象的属性名称的实体的全路径
* column="":表示外键列的名称
-->
<many-to-one name="customer" class="cn.ibbidream.a_oneToMany.Customer" column="cid"></many-to-one> <!--
set:一对多的映射:
Set<Order> orders = new HashSet<Order>();
* set name:集合的属性名称
* key column:多的一端的外键列的名称
* one-to-many class:集合中存放的对象的全路径
-->
<set name="orders">
<key column="cid"></key>
<one-to-many class="cn.ibbidream.a_oneToMany.Order"/>
</set>
一对一:
Company {
// 一个公司 一个地址
Address address;
}
Address {
// 一个地址 对应一个公司
Company company ;
}
hibernate 中映射关系配置的更多相关文章
- Hibernate关联映射关系
Hibernate关联映射关系 一.双向一对多关联映射关系:当类与类之间建立了关联,就可以方便的从一个对象导航到另一个或另一组与它关联的对象(一对多双向关联和多对一双向关联是完全一样的) 1.1创建实 ...
- Hibernate中映射一对一关联(按主键映射和外键映射)和组件映射
Hibernate中映射一对一关联(按主键映射和外键映射)和组件映射 Hibernate提供了两 ...
- Hibernate 中对象关系映射(ObjectRelationMapping)
1.什么是对象关系映射? 解析:对象-关系映射(Object Relational Mapping,简称ORM,对象关系映射)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说, ...
- Hibernate的映射文件配置
对象关系的映射是用一个XML文档来说明的.映射文档可以使用工具来生成,如XDoclet,Middlegen和AndroMDA等.下面从一个映射的例子开始讲解映射元素,映射文件的代码如下: <?x ...
- JPA中映射关系详细说明(一对多,多对一,一对一、多对多)、@JoinColumn、mappedBy说明
JPA中的映射关系 jpa中维护one to one ,one to many, many to one ,many to many 四种映射关系. 在每个关系中,双方中的一方在其表中拥有连接列.那么 ...
- java框架篇---hibernate(一对一)映射关系
对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术,本质上就是将数据从 ...
- hibernate 继承映射关系( SINGLE_TABLE)
三种继承映射关系. 1,SINGLE_TABLE person student teacher 在一个表中,student和teacher继承自person,通过一个Discriminato ...
- hibernate多对多关系配置
一.创建用户,角色实体类. 一名用户可以有多个角色.一个角色可以对于多名用户. 用户实体类 public class User { private int uId; private String uN ...
- Hibernate中"二级缓存"配置
实体类 : package cn.happy.entity; public class Emp { private Integer empNo; private String empName; pub ...
随机推荐
- 【HDU 4864】 Task
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=4864 [算法] 贪心 不妨将两个数组分别按x从大到小排序 然后枚举每件物品,选择x值大于该物品的且 ...
- Kernel trick----PRML读书笔记
Many linear parametric models can be re-cast into an equivalent 'dual representstion' in which the p ...
- 【WIP】Bootstrap modal
创建: 2017/09/28 更新: 2017/10/14 标题加上[WIP]
- windows2003下svn的安装
Windows2003下svn平台搭建 编辑:dnawo 日期:2010-08-03 转自http://www.mzwu.com/article.asp?id=2557 字体大小: 小 中 大 ...
- P4046 [JSOI2010]快递服务
传送门 很容易想出\(O(n^3m)\)的方程,三维分别表示某个快递员现在在哪里,然后直接递推即可 然而这样会T,考虑怎么优化.我们发现每一天的时候都有一个快递员的位置是确定的,即在前一天要到的位置. ...
- memcache缓存系统
一.缓存系统 静态web页面: 1.在静态Web程序中,客户端使用Web浏览器(IE.FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服 ...
- Python基础数据类型(三)list 列表
3.4列表list [] 列表的格式 lst_l = [1,'123',[1,'www',2],'包青天'] 列表也有索引 print(lst_l[0]) print([-1][0:2]) #包青 切 ...
- cocos creator学习
2019-05-30 22:23:27 按照前一节我发的教程做,大概了解了Cocos creator的基本布局 但是你发现你不好写代码(感觉视频没有提) 需要下载VS code软件,在其上进行编辑,教 ...
- Axure基础教程
文字教程: https://www.axure.com.cn/3608/ 视频教程: http://www.iqiyi.com/playlist409963402.html
- 【转】linux read 用法
转自:http://www.cnblogs.com/iloveyoucc/archive/2012/04/16/2451328.html 1.基本读取 read命令接收标准输入(键盘)的输入,或其他文 ...