1

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

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

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

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

谢谢

4

1 回答 1

1

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

ALTER SEQUENCE names_id_seq RESTART WITH currentId;

,我从哪里得到 currentId

SELECT currval('names_id_seq');
于 2013-10-31T09:52:05.427 回答