java - hibernate persist 尝试使用现有 id 创建对象失败

标签 java spring hibernate postgresql

我正在使用 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/

相关文章:

java - 为什么表用户没有创建?我收到此消息 "Unsuccessful: create table user"

java - 自定义默认登录页面 Alfresco

java - 如何捕获hibernate延迟加载?

java - 如何在 Hibernate 上比较同一实体的延迟加载对象?

java - Jfreechart注释消失

java - 核心 Java 中的编译时错误

java - 如何测试使用 JDBC 的 Spring Controller ?

java - 用于切换当前工作集的 Eclipse 快捷方式

spring - @AutoConfigureWebMvc和@AutoConfigureMockMvc有什么区别?

java - Spring boot java,在另一个属性中使用一个属性