(1) assigned
主键由外部程序负责生成,无需NHibernate参与。

(2) hilo
通过hi/lo 算法实现的主键生成机制,需要额外的数据库表保存主
键生成 历史状态。

(3) seqhilo
与hilo 类似,通过hi/lo 算法实现的主键生成机制,只是主键历史
状态保存在Sequence中,适用于支持Sequence的数据库,如Oracle。

(4) increment
主 键按数值顺序递增。此方式的实现机制为在当前应用实例中维持
一个变量,以保存着当前的最大值,之后每次需要生成主键的时候
将此值加1作为 主键。
这种方式可能产生的问题是:如果当前有多个实例访问同一个数据
库,那么由于各个实例各自维护主键状态,不同实例可能生成同样
的 主键,从而造成主键重复异常。因此,如果同一数据库有多个实
例访问,此方式必须避免使用。

(5) identity
采用数据库提供的主键生成机制。如DB2、SQL Server、MySQL
中的主键 生成机制。

(6) sequence
采用数据库提供的sequence 机制生成主键。如Oralce 中的
Sequence。

(7) native
由 NHibernate根据底层数据库自行判断采用identity、hilo、sequence
其中一种作为主键生成方式。) uuid.hex
由 Hibernate基于128 位唯一值产生算法生成16 进制数值(编码后
以长度32 的字符串表示)作为主键。

(8) foreign
使用外部表的字段作为主键。

转载自http://www.cnblogs.com/lemon-love/archive/2010/03/10/1683058.html

转载于:https://www.cnblogs.com/ymj126/archive/2012/11/12/2766517.html

NHibernate之Generator主键生成方式相关推荐

  1. Hibernate主键生成方式

    对于SQLServer数据库在使用中如果将表的主键字段id设为了自增的numeric那么在hibernate中的设置为: <id name="id" type="j ...

  2. 分布式学习笔记-唯一主键生成方式

    分布式如何生成唯一主键 描述 优点 缺点 UUID UUID 通用唯一标识码缩写,其目是让分布式系统中所有元素都有唯一的辨识信息,而且不需要通过中央控制器来指定唯一标识 java.util.UUID. ...

  3. 一篇搞定,分布式系统中唯一主键生成

    简介: 分布式系统中最关键的一个问题,ID生成,本文,一篇带你掌握 系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结.生成ID的方法有很多,适应不同的场景.需求以及性能要 ...

  4. MySQL之主键ID生成策略

    5种全局ID生成方式.优缺点及改进方案 全局唯一id特点: 1.数据库自增长序列或字段生成id 2.UUID 3.Redis生成ID 4.zookeeper生成ID 5.Twitter的snowfla ...

  5. 数据库模型设计——主键的设计

    在数据库设计时,主要就是对实体和关系的设计,实体表现出来就是表,关系表现出来就是外键.而对于一个表,由两部分组成:主键和属性.主键的简单定义就是表中为每一行数据的唯一标识.其实更准确的说法,每一行数据 ...

  6. Hibernate主键生成种类

    Hibernate实体类的*.hbm.xml配置文件: 一个参考例子: <hibernate-mapping> <!-- name:实体Bean,即类名 table:实体Bean对应 ...

  7. hibernate主键生成策略 问题

    转载自:https://www.jianshu.com/p/79311d81e77f 首先,如果出现这个问题你很有可能就是没有很好的注意到主键的生成策略.说到这里是不是就像去看看主键的生成呢? 在.h ...

  8. Hibernate主键生成策略总结(这里面讲的很详细)

    Hibernate提供的主键生成策略,使我们可以在实体类的映射xml文件中设定关键字来告诉hibernate我们要使用的主键生成方式,然后hibernate会根据设定完成数据库的主键控制. 一.首先通 ...

  9. hibernate框架之主键生成

    一. hibernate 框架中主键的生成策略 (1)native: 表示由设置的方言决定采用什么数据库生成主键方式,根据底层数据库能力选择identity.sequence中的一个. 例如:在MyS ...

最新文章

  1. linux kernel devel和kernel source的区别
  2. java 服务器发布_我如何在java中发布到服务器?
  3. Google 都在用的 6 个休息小技巧,让你工作效率翻倍
  4. Ajax/REST 第1部分
  5. Mysql主备延迟的原因
  6. 《网站情感化设计与内容策略》一第1章 情感化设计1.1 革命:有失亦有得
  7. 移动硬盘拒绝访问找到数据的法子
  8. 如何使用PowerShell创建简单SQL Server数据库登录对话框
  9. [转载] C++学习之异常处理详解
  10. 软考难点—软件开发模型(借鉴)
  11. ABAP调用HTTP服务
  12. 模块化设计(程序流程图)
  13. DTU是什么,什么是工业4G DTU?
  14. [转]VC知识库文章 - 在MFC中用正则表达式对窗体进行有效性验证
  15. windows 用choco 安装nvm
  16. 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇
  17. 语音合成——闽南语合成(1)
  18. Data Struct - Book
  19. 【无机纳米材料科研制图——Visio 0306】局域表面等离子共振LSPR机理图和Jablonski 能级图绘制
  20. 【笔记】29元microbit套装如何玩——那些支持microbit的图形化编程开发环境

热门文章

  1. 关于微信小程序登录授权
  2. Unidirectional Link Detection Protocol
  3. 学习CAS实现SSO单点登录
  4. 如何解决企业邮件对国外的通信问题
  5. JS中的call、apply、bind方法详解
  6. 为什么会有jsessionid,这个东东有什么用呢?
  7. 《深入浅出MFC》系列之动态创建
  8. 如何在Blog中使用feedburner管理RSS订阅
  9. 1024. 科学计数法 (20)
  10. ajax局部刷新后,如何让局部中的百度分享重新加载