我正在使用spring-hibernate-postgres。我有一张桌子说'some_entity'。它已包含一些记录。
我有一个程序试图创建新的SomeEntity对象。我用适当的属性填充该对象,然后我在其上调用persist()方法。
在日志中,我看到hibernate试图从表序列中获取nextVal()。但是,我的postgres返回的nextval与some_entity表的第2行的id相同。所以,我的hibernate尝试用该id创建行。因此我的persist()因hibernate约束违例异常而失败。
可能我没有正确地回答这个问题。我希望有人已经遇到过这个问题并且已经解决了这个问题。
由于
答案 0 :(得分:1)
我有这个问题。我通过执行sql来解决它,在应用程序启动时更新序列
ALTER SEQUENCE names_id_seq RESTART WITH currentId;
,其中currentId来自
SELECT currval('names_id_seq');