Hibernate id的generator_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1863 | 回复: 0   主题: Hibernate id的generator        下一篇 
    本主题由 koei123 于 2015-7-14 11:05:58 移动
ab19890824
注册用户
等级:少尉
经验:351
发帖:92
精华:0
注册:2011-11-21
状态:离线
发送短消息息给ab19890824 加好友    发送短消息息给ab19890824 发消息
发表于: IP:您无权察看 2015-7-3 16:44:04 | [全部帖] [楼主帖] 楼主

1.increment

   自增序列,由hibernate维护。初始值为1,只支持int long和short。不适合多线程并发更新数据库,适合单一进程访问数据库。不能用于群集环境

2. identity

   与底层数据库有关,要求数据库支持identify,如MySQL中是auto_increment,SQL Server中是Identify.支持的数据库有MySQL,SQL Server,DB2,Sybase和HypersonicSQL.只支持int long和short

3. sequence

   需要底层数据库的支持序列,支持序列的数据库有DB2,PostgreSQL,Oracle,SAPDB等。只支持int long和short

4. hilo

   通过hilo算法生成主键,要求当前数据库里有表hibernate_unique_key,并且只有一个int类型字段next_hi,必须有一行数据,而且不能更改。能保证同一个数据库中主键的唯一性,但不能保证多个数据库之间主键的唯一性。hilo主键生成方式由Hibernate维护,所以hilo方式与底层数据库无关。但不应该手动修改hi/lo算法使用的表的值,否则会引起主建重复的异常

5. seqhilo

   使用方法与hilo方式类似,通过hi/lo算法生成主键,但要求底层数据库支持sequence,如Oracle,DB2

6. uuid

   通过一种算法生成string类型32位的主键,保证生成的主键唯一。

   生成主键例子: 8acca38b1c3625bf011c3625c2920001

7. guid

   一种特殊的算法。支持SQL Server,MySQL. 在使用SQL Server时,表定义中的字段的类型指定为uniqueidentifier

(到现在还没找到比较好的解释)
8. native


   根据不同的底层数据库,采用不同的主键生成方式。如MySQL使用Idetify方式,Oracle使用Sequence方式,项目中如果用到多个数据库时,可以使用native方式

9. assigned

   主键由程序自己维护,一个持久类在被save()前必须手动指派一个主键

10. select
retrieves a primary key assigned by a database trigger by selecting the row by some unique key and retrieving the primary key value.


官方文档原文如上。

11. foreign


   用于一对一关联映射。

--转自 北京联动北方科技有限公司



该贴由koei123转至本版2015-7-14 11:05:58



赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论