Hibernate之id标签的generator

Hibernate id的generator
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
     用于一对一关联映射。
12. sequence-identity
   放这吧,什么时候知道什么意思了再写上,估计平时用的极少

转载于:https://www.cnblogs.com/yangkai-cn/archive/2012/12/25/4017003.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值