JdbcSQLException:唯一索引或主键冲突

问题描述 投票:0回答:1

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

我试着写一个测试它的存储库来测试储蓄的功能,我也得到:

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;

任何想法?

先感谢您!

java spring spring-repositories
1个回答
1
投票

代码似乎是正确的。

比较在DB并为SEQ_ACC_DATA表的ID列中的最大值的ACC_DATA序列的价值。

如果ID列有值比序列时,你需要增加序列的值,使得新的插入可以通过代码发生。

© www.soinside.com 2019 - 2024. All rights reserved.