Hibernate中常见的主键生成策略

本文介绍了Hibernate中主键生成策略的重要性,强调主键应与业务无关并避免使用易变数据。详细讲解了increment、identity、sequence、uuid、native、assigned和foreign等策略的原理和适用场景,并指出不同数据库对这些策略的支持情况。
摘要由CSDN通过智能技术生成
主键生成策略

1、主键的分类:见链接:https://blog.csdn.net/pipizhen_/article/details/107851361

主键应该设置,和业务不相关的自然数,不要拿着人员的身份证做主键,拿着银行卡号做主键,因为业务可能会改动,而主键不能随便改。

在实际开发中一般不允许用户手动设置主键,一般将主键交给数据库,手动编写程序进行设置。在Hibernate中为了减少主键的编写,提供了很多种主键的生成策略。


2、常见的主键生成策略:

(1)increment

使用Hibernate中提供的自动增长机制,而不是数据库底层的自动增长,适用short,int,long类型的主键,只能在单线程中使用。

底层原理:先发送一条语句,select max(id) from表; 然后让id + 1作为下一条记录的id,如果多线程操作,可能存在主键一样的问题。


(2)identity

适用于short,int,long类型的主键,使用的是数据库底层的自动增长机制。

适用于有自动增长机制的数据库(MySQL,Sql Server),但是Oracle是没有自动增长机制的。


(3)sequence

适用于short

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值