我正在使用 spring-hibernate-postgres。我有一张 table 说'some_entity'。它已经包含一些记录。
我有一个程序试图创建新的 SomeEntity 对象。我用适当的属性填充该对象,然后调用它的 persist() 方法。
在日志中,我看到 hibernate 正在尝试从表序列中获取 nextVal()。但是,我的 postgres 返回的 nextval 与 some_entity 表第二行的 id 相同。所以,我的 hibernate 尝试用那个 id 创建行。因此我的 persist() 因 hibernate 约束违反异常而失败。
可能是我没有正确表述问题。我希望有人已经遇到过这个问题并有解决方案。
谢谢
最佳答案
我遇到了这个问题。我通过执行 sql 解决了这个问题,它在应用程序启动时更新序列
ALTER SEQUENCE names_id_seq RESTART WITH currentId;
,我从哪里得到currentId
SELECT currval('names_id_seq');
关于java - hibernate persist 尝试使用现有 id 创建对象失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19696371/