Hibernate的主键生成策略

本文详细介绍了Hibernate框架中各种主键生成策略,包括increment、identity、sequence、native、foreign、uuid和assigned等,探讨了它们的特点及适用场景,帮助开发者选择合适的策略以提升应用程序性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hibernate的主键生成策略:
主键的分类:
1、自然主键:该主键是本身是实体的一个属性。
2、代理主键:该主键不是实体中的一个属性,而是我们为了标识不同实体额外添加的一个字段。
我们尽量使用代理主键,因为在Hibernate中主键是不允许修改的。(OCP原则)
一般情况不允许用户自动生成主键,而是使用Hibernate提供的主键生成策略。
在mapping映射文件中,id标签需要一个子标签genetor,属性class的取值是为主键生成策略的方式。
increment:适用于short,int,long类型的主键,是Hibernate的自动增长模式。线程不安全的
identity:适用于short,int,long类型的主键,采用数据库底层的自动增长模式,适用于有id自增长的数据库,如mysql,线程安全
sequence:适用于short,int,long类型的主键,采用数据库的序列增长模式,适用于底层使用sequence的数据库,如Oracle
native:本地策略,根据数据库底层的增长方式,来确定是identity还是sequence
foreign:在一对一关系中,一个表的主键由另一个的主键决定。
uuid:适用于主键是String类型的变量。
assigned:Hibernate放弃对主键的管理,需要手动编写程序来生成。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值