常用的hibernate内置主键生成器说明
2017-07-01 09:22
357 查看
我们在使用Hibernate的时候,该怎样配置主键生成器,此时就必须先对主键生成策略有一个基本的了解:
比如:
mysql不支持sequence增长方式, oracle不支持identity.
下面列出一张表,对hibernate内置主键生成器进行说明:
hibernate内置主键生成器一览表
参考:
http://www.cnblogs.com/jimorulang/p/5522189.html
比如:
mysql不支持sequence增长方式, oracle不支持identity.
下面列出一张表,对hibernate内置主键生成器进行说明:
主键生成器 | 说明 |
increment | 适用于代理主键. 由Hibernate自动以递增的方式生成标识符. 每次增加1. 优点: 由于它的机制不依赖于底层数据库系统. 因此它适合于所有的数据库系统. 缺点: 只适合有单个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
相关文章推荐
- Hibenate主键映射和Hibernate常用的标示生成器
- Hibernate提供的内置主键生成器
- Hibernate的主键生成器generator说明
- Hibernate主键生成器说明
- Hibernate3.2(9):Hibernate的内置主键生成器
- 常用的Hibernate主键生成策略
- hibernate主键生成策略详细说明
- hibernate内置生成器
- 【Hibernate框架开发之四】Hibernate-Annotation常用的注解归总&&ID的生成策略&&联合主键
- Hibernate中常用的主键生成策略
- hibernate主键生成器总结
- Hibernate中映射详解(一)--基本映射及主键生成器
- Hibernate提供的内置标识符生成器
- hibernate主键:常用Hibernate主键生成策略
- Hibernate的主键生成器generator(zhuan)
- Hibernate主键生成器generator
- Hibernate内置标识符生成器
- Hibernate提供的内置标识符生成器
- JSP常用内置对象使用说明
- Hibernate的常用方法与HQL运算符的说明