休眠持久尝试使用现有 ID 创建对象失败



我正在使用spring-hibernate-postgres。我有一张桌子写着"some_entity"。它已经包含一些记录。

我有一个程序试图创建新的SomeEntity对象。我正在用适当的属性填充该对象,然后我在其上调用 persist() 方法。

在日志中,我看到休眠正在尝试从表序列中获取 nextVal()。但是,我的 postgres 返回的 nextval 与表的第二行 id 相同some_entity。因此,我的休眠尝试使用该 id 创建行。因此我的 persist() 失败并出现休眠约束违规异常。

可能是我没有正确措辞问题。我希望有人已经遇到过这个问题并有解决方案。

谢谢

我遇到了这个问题。我通过执行 sql 解决了它,它在应用程序启动时更新序列

ALTER SEQUENCE names_id_seq RESTART WITH currentId;

,我从哪里得到当前ID

SELECT currval('names_id_seq');

最新更新