常用的hibernate内置主键生成器说明
来源:互联网 发布:王欣认罪 知乎 编辑:程序博客网 时间:2024/06/10 20:47
我们在使用Hibernate的时候,该怎样配置主键生成器,此时就必须先对主键生成策略有一个基本的了解:
比如:
mysql不支持sequence增长方式, oracle不支持identity.
下面列出一张表,对hibernate内置主键生成器进行说明:
优点: 由于它的机制不依赖于底层数据库系统. 因此它适合于所有的数据库系统.
缺点: 只适合有单个Hibernate应用进程访问同一个数据库, 在集群环境下不推荐使用它. 另外, 需要注意:OID(主键)必须为
long, int , short类型, 如果为byte类型, 则会有异常.identity适用于代理主键. 由底层数据库生成标识符. 前提条件是底层数据库支持自动增长字段类型. (Oracle数据库不能用它)sequence适用于代理主键. Hibernate根据底层数据库的序列来生成标识符. 前提条件是底层数据库支持序列. (Oracle数据库能用它)hilo适用于代理主键. Hibernate根据high/low算法来生成标识符. Hibernate把特定表的字段作为"high"值. 在默认情况下选用
hibernate_unique_key表的next_hi字段. 它的机制.不依赖于底层数据库系统. 因此,它适合于所有的数据库系统. high/low
算法生成的标识符只能在一个数据库中保证唯一.native适用于代理主键.根据底层数据库对自动生成标识符的支持能力.来选择identity, sequence, hilo. 很适合于跨平台并发. 即同
一个Hibernate应用需要连接多种数据库系统.uuid.hex适用于代理主键. Hibernate采用128位的UUID算法来生成标识符. UUID算法能够在网络环境中生成唯一的字符串标识符.
这种标识符生成策略并不流行, 因为字符串类型的主键比整数类型的主键占用更多的数据库空间.assigned适用于自然主键. 由Java应用程序负责生成标识符, 为了能让Java应用程序设置OID(主键), 不能把setId()方法声明为private
类型. 应该尽量避免使用自然主键.
参考:
http://www.cnblogs.com/jimorulang/p/5522189.html
阅读全文
0 0
- 常用的hibernate内置主键生成器说明
- Hibernate提供的内置主键生成器
- Hibernate提供的内置主键生成器
- Hibernate主键生成器说明
- Hibernate的主键生成器generator说明
- Hibernate3.2(9):Hibernate的内置主键生成器
- Hibenate主键映射和Hibernate常用的标示生成器
- Hibernate的主键生成器使用总结
- Hibernate提供的内置标识符生成器
- Hibernate内置的持久化标识符生成器
- hibernate 主键生成器解释
- Hibernate主键生成器
- Hibernate主键生成器generator
- hibernate主键策略生成器
- Hibernate主键策略生成器
- Hibernate自定义主键生成器
- Hibernate主键生成器详解
- Hibernate主键生成器
- SQL Server 2012建立链接服务器
- Java虚拟机--一段Java程序的生命史(二十三)
- 详解C++项目中的extern "C" {}
- React技术栈进阶之路之设计模式篇
- 学习的步伐(四) Kotlin 基础语法学习总结:操作符
- 常用的hibernate内置主键生成器说明
- 网络视频播放器
- POJ1511---Invitation Cards (最短路:邻接表+2次spfa)
- Kotlin-数据类
- windows上运行tex文件
- 学习的步伐(五) Kotlin 基础语法学习总结:语法
- Android中如何使用WIFI来连接ADB
- iOS自动打包脚本
- 网络流入门题集合