[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),即对象关系映射. 它将数据库中的表映射成对应的 ...
随机推荐
- Eclipse下还原删除的文件
做项目的时候,不小心把Eclipse下的么个文件删除了,虽然有svn但是最新修改的代码没有提交,怎么办,在网上查了下,eclipse是可以还原删除文件的.具体做法如下所示 恢复删除的文件 1 在项目上 ...
- 每建一个Activity都要注册权限Manifest.xml
每建一个Activity都要注册权限Manifest.xml 但是有时候自动注册好了,注意!不然的话是不能调用的!!!!!<activity android:name=".MainVi ...
- psutil一个基于python的跨平台系统信息跟踪模块
受益于这个模块的帮助,在这里我推荐一手. https://pythonhosted.org/psutil/#processes psutil是一个基于python的跨平台系统信息监视模块.在pytho ...
- 面试中关于Java你所需知道的的一切
本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺. 1. Java中的原始数据类型都有哪些, ...
- 微软TFS Agile/CMMI/Scrum
二.VS Online 与 Agile/Cmmi/Scrum 介绍了背景,那就言归正传了.VS Online 和文章标题有什么关系呢? 成功注册VS Online之后,我准备创建自己的project时 ...
- bzoj 1334: [Baltic2008]Elect
Description N个政党要组成一个联合内阁,每个党都有自己的席位数. 现在希望你找出一种方案,你选中的党的席位数要大于总数的一半,并且联合内阁的席位数越多越好. 对于一个联合内阁,如果某个政党 ...
- 编写、部署、应用JavaBean
编写javabean 编写javabean实质上就是编写一个java类.设计javabean类就是要设计这个javabean的属性和方法,类的方法的命名遵循以下规则: 1)如果成员变量的名字是xx ...
- 再谈Newtonsoft.Json高级用法
上一篇Newtonsoft.Json高级用法发布以后收到挺多回复的,本篇将分享几点挺有用的知识点和最近项目中用到的一个新点进行说明,做为对上篇文章的补充. 阅读目录 动态改变属性序列化名称 枚举值序列 ...
- 聚类算法:K-means
2013-12-13 20:00:58 Yanjun K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大.该算法认为簇是由距离 ...
- __ block
1.__block对象在block中是可以被修改.重新赋值的. 2.__block对象在block中不会被block强引用一次,从而不会出现循环引用问题. API Reference对__weak变量 ...