猿问

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

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

守着一只汪
浏览 114回答 3
3回答

慕森王

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

汪汪一只猫

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

慕后森

在migrate(迁移数据库时)要把sequence的当前值一起迁移。这个是编写migration脚本的任务。数据库本身提供相应的管理语句做这样的修改。没必要做到一般业务逻辑中。一种是直接写sql修改sequence起始值,一种是另外写一个程序,检查相关表,找到最大key值,然后根据这个值修改相应的sequence初始值。
随时随地看视频慕课网APP

相关分类

Java
JavaScript
我要回答