spring boot 2.0 JPA主键生成策略不按单表递增解决办法

更新至Spring Boot 2.0后,在云端测试中发现自动生成的主键不再按顺序递增。文章详细介绍了问题的原因在于默认使用了Sequence策略,并提供了解决方案,即使用Identity策略确保主键的连续递增。

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

spring BOOT 更新至2.0后,上到云端测试后,发现自动生成的主键有问题,如下:


主键没有按照表中的顺序递增,而是看似无规则的递增中。

参考了一下其他表也是这种状态,于是把问题定位在了 spring data jpa 生成主键的策略上:

之前都是AUTO让jpa自动的选择生成的方式

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;

具体的主键策略生成规则详见:https://blog.youkuaiyun.com/li563868273/article/details/50038653

但是更新后它默认的使用的规则为

@GeneratedValue(strategy = GenerationType.SEQUENCE)
并且id生成策略是数据库全局的生成策略,而不是单表的id生成策略


解决办法:

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY
)
    private int id;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值