[NHibernate]关联映射
系列文章
[NHibernate]持久化类(Persistent Classes)
[NHibernate]集合类(Collections)映射
引言
单向关联是最常用的也是最难正确使用的。在本文中会逐个经历规范的案例,从单向映射开始,然后涉及双向的案例。我们会在所有的例子中hi用Person和Address。例子中没有包括命名空间和程序集,我们把关注点放在重要的方面。
我们通过是否使用表连接和多样性(单向或双向)分类关联。
在传统的数据模型中允许为空的外键是不适用的,所以我们的例子中没有使用允许为空的外键,在NHibernate中这不是必须的,如果你删除控制的约束,映射会照常工作。
单向关联
多对一(many to one)
一对一(one to one)
一对多(one to many)
使用表连接的单向关联
多对一(many to one)
一对一(one to one)
一对多(one to many)
多对多(many to many)
双向关联
一对多(one to many)/多对一(many to one)
双向的一对多(one to many)关联是普通的关联类型。(这是标准的parent/child关系)
<class name="Person">
<id name="Id" column="personId">
<generator class="native" />
</id>
<many-to-one name="Address"
column="addressId"
not-null="true"
/>
</class>
<class name="Address">
<id name="Id" column="addressId">
<generator class="native" />
</id>
<set name="People" inverse="true">
<key column="addressId" />
<one-to-many class="Person" />
</set>
</class>
create table Person
(
personId bigint not null primary key,
addressId bigint not null
)
create table Address
(
addressId bigint not null primary key
)
一对一(one to one)
使用表连接的双向关联
一对多(one to many)/多对一(many to one)
一对一(one to one)
多对多(many to many)
总结
这里对知识点有个大概的了解,具体应用还需在后续的文章中,通过例子来说明。
本文来自《NHibernat 中文文档》
[NHibernate]关联映射的更多相关文章
- NHibernate教程(9)一1对n关联映射
本节内容 引入 NHibernate中的集合类型 建立父子关系 父子关联映射 结语 引入 通过前几篇文章的介绍,基本上了解了NHibernate,但是在NHibernate中映射关系是NHiberna ...
- NHibernate之映射文件配置说明
NHibernate之映射文件配置说明 1. hibernate-mapping 这个元素包括以下可选的属性.schema属性,指明了这个映射所引用的表所在的schema名称.假若指定了这个属性, 表 ...
- Fluent NHibernate关系映射
1.好处:Fluent NHibernate让你不再需要去写NHibernate的标准映射文件(.hbm.xml), 方便了我们的代码重构,提供了代码的易读性,并精简了项目代码 实现: (1).首先我 ...
- NHibernate 继承映射(第十六篇)
在NHibernate的映射中,关于继承的映射策略有3种方式 单表继承 类表继承 具体表继承 另外还有一种比较特别的多态映射 隐式多态 下面分别来阐述NHibernate继承映射的各种策略要点. 一. ...
- NHibernate 集合映射基础(第四篇) - 一对一、 一对多、多对多小示例
映射文件,用于告诉NHibernate数据库里的表.列于.Net程序中的类的关系.因此映射文件的配置非常重要. 一.一对一 NHibernate一对一关系的配置方式使用<one-to-one&g ...
- Hibernatel框架关联映射
Hibernatel框架关联映射 Hibernate程序执行流程: 1.集合映射 需求:网络购物时,用户购买商品,填写地址 每个用户会有不确定的地址数目,或者只有一个或者有很多.这个时候不能把每条地址 ...
- hibernate多对多关联映射
关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...
- Hibernate一对多单向(双向)关联映射
(1).编写配置文件 Hibernate通过读写默认的XML配置文件hibernate.cfg.xml加载数据库配置信息.代码如下: <hibernate-configuration> & ...
- Java三大框架之——Hibernate关联映射与级联操作
什么是Hibernate中的关联映射? 简单来说Hibernate是ORM映射的持久层框架,全称是(Object Relational Mapping),即对象关系映射. 它将数据库中的表映射成对应的 ...
随机推荐
- linux命令详解:md5sum命令
前言 在网络传输.设备之间转存.复制大文件等时,可能会出现传输前后数据不一致的情况.这种情况在网络这种相对更不稳定的环境中,容易出现.那么校验文件的完整性,也是势在必行的. 使用说明 md5sum命令 ...
- [python]爬虫学习(二)
---恢复内容开始--- #python2 import urllib2 #python3 import urllib.request html=urllib.request.urlopen('htt ...
- Openstack基本命令
Openstack有数量众多的命令行工具(CLI),用来执行各式各样的管理任务,例如VM管理.存储管理.网络管理.本文描述用Openstack CLI工具执行如下任务: 设置环境变量 使用内置帮助 创 ...
- java md5
需求是,上传文件到HDFS,然后生成同名的MD5文件,基本示例如下: public static String getMD5(InputStream inputStream) { byte[] buf ...
- 匈牙利算法——S.B.S.
匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名.匈牙利算法是基于Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最 ...
- Dialog详解(包括进度条、PopupWindow、自定义view、自定义样式的对话框)
Dialog详解(包括进度条.PopupWindow.自定义view.自定义样式的对话框) Android中提供了多种对话框,在实际应用中我们可能会需要修改这些已有的对话框.本实例就是从实际出发, ...
- ionic配置 问题小记
1.用命令ionic start myApp tabs新建项目时,在最后面提示ionic\cli.js报错的问题(具体问题描述忘记了) 安装 node-inspector 即可 ,使用命令 cnpm ...
- C 语言学习 第二次作业总结
本次作业内容,主要有以下几点: 新建 coding 帐号,且使用 coding 上传本次作业的代码 Printf及条件判断语句的使用 作业总结 作业总结: 同学们开始渐入佳境,能够较为流畅的写出合理的 ...
- Hibernate批量处理海量数据的方法
本文实例讲述了Hibernate批量处理海量数据的方法.分享给大家供大家参考,具体如下: Hibernate批量处理海量其实从性能上考虑,它是很不可取的,浪费了很大的内存.从它的机制上讲,Hibern ...
- js打开新页面与关闭当前页面
打开新的窗口window.open("help.html"); window.open("help.html"); 关闭页面<a href="j ...