为了账号安全,请及时绑定邮箱和手机立即绑定

有没有什么办法解决序列重复问题?

有没有什么办法解决序列重复问题?

守着一只汪 2022-10-20 15:15:58
hibernate使用序列生成主键,在保存pojo时,会出现主键重复问题,这种情况在移植时最多,有没有什么办法在程序层面解决这种问题,当序列产生的值重复时,会自动忽略重复值,不抛出异常,而是获取下一个序列值,直到获取的序列值不重复时,才正常保存对象到数据库
查看完整描述

3 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

按理说序列自动生成是不可能重复的,应该是你使用的时候有考虑不周的地方,为了避免重复,最好就是插入数据库前先查询当前序列,比较后再插入,不过会损失一定的效率了。

查看完整回答
反对 回复 2022-10-24
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

可能是你的代码有问题,一个类反复save了 主键就会重复

查看完整回答
反对 回复 2022-10-24
?
慕后森

TA贡献1802条经验 获得超5个赞

在migrate(迁移数据库时)要把sequence的当前值一起迁移。
这个是编写migration脚本的任务。

数据库本身提供相应的管理语句做这样的修改。

没必要做到一般业务逻辑中。
一种是直接写sql修改sequence起始值,
一种是另外写一个程序,检查相关表,找到最大key值,然后根据这个值修改相应的sequence初始值。

查看完整回答
反对 回复 2022-10-24
  • 3 回答
  • 0 关注
  • 74 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信