linux安装id-generator,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

放这吧,什么时候知道什么意思了再写上,估计平时用的极少0b1331709591d260c1c78e86d0c51c18.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值