Hibernate的主键生成器

对hibernate的generator的熟悉度不够,想多知道知道。查了查,原来有很多的主键生成器,先大体的了解了解。

increment
主键按数值顺序递增。此方式的实现机制为在当前应用实例中维持一个变量,以保存着当前的最大值,之后每次需要生成主键的时候将此值加1作为主键。这种方式可能产生的问题是:不能在集群下使用。

identity

seqhilo

uuid:
对字符串列的数据采用 128-位 uuid 算法生成唯一的字符串主键。

hilo
通过hi/lo 算法实现的主键生成机制,需要额外的数据库表保存主键生成历史状态。

foreign
使用外部表的字段作为主键。

native
由Hibernate根据底层数据库自行判断采用identity、hilo、sequence其中一种作为主键生成方式,这种方式我在开法过程中经常用到,意思是把主键的生成方式交给底层数据库来决定。

assigned
主键由外部程序负责生成,无需Hibernate参与。

uuid.hex
由Hibernate基于128 位唯一值产生算法生成16 进制数值(编码后以长度32 的字符串表示)作为主键。

uuid.string
与uuid.hex 类似,只是生成的主键未进行编码(长度16)。在某些数据库中可能出现问题(如PostgreSQL)。

这些我不都是不知道的,现在就先做到知道有这些了呢!

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值