Java JdbcSQLException:唯一索引或主键冲突

Java JdbcSQLException:唯一索引或主键冲突,java,spring,spring-repositories,Java,Spring,Spring Repositories,我有两个表,AccountData和Relations。 他们有一对多的关系,一个帐户可以属于更多的关系 我尝试为其存储库编写测试,以测试保存功能,我得到: Caused by: org.h2.jdbc.JdbcSQLException: Unique index or primary key violation: "PRIMARY KEY ON PUBLIC.ACC_DATA(ID)"; SQL statement: insert into ACC_DATA (ACC_CURRENCY, ST

我有两个表,AccountData和Relations。 他们有一对多的关系,一个帐户可以属于更多的关系

我尝试为其存储库编写测试,以测试保存功能,我得到:

Caused by: org.h2.jdbc.JdbcSQLException: Unique index or primary key violation: "PRIMARY KEY ON PUBLIC.ACC_DATA(ID)"; SQL statement:
insert into ACC_DATA (ACC_CURRENCY, STATUS, CREATED_AT, CODE, ACC_NBR, OWNER_ID, EP_ID, SUBTYPE_ID, TYPE_ID, id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [23505-197]
我对主键的定义如下:

@Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_ACC_DATA")
    @SequenceGenerator(name = "SEQ_ACC_DATA", sequenceName = "SEQ_ACC_DATA", allocationSize = 50)
    private Long id;
有什么想法吗


提前谢谢你

代码似乎是正确的

比较数据库中
SEQ_ACC_DATA
序列的值和
ACC_DATA
表中
ID
列的最大值


如果ID列的值大于序列,则需要增加序列的值,以便通过代码进行新的插入。

此表上是否有唯一的索引?您是否已经检查了由于某种原因,
SEQ_ACC_DATA
上的下一个序列值是否与您的表匹配?不,我没有,这是一个H2数据库。我使用的是Spring DATA JPA,Hibernate和H2作为数据库。应用程序创建了自己的数据库表。我有以下映射:@OneToMany(mappedBy=“account”,cascade=CascadeType.ALL,orphanRemoving=true)私有列表关系@manytone(fetch=FetchType.LAZY)@JoinColumn(name=“ACC\u DATA\u ID”)私有AccData accountData;