JdbcSQLException:唯一索引或主键冲突

时间:2019-02-05 16:32:02

标签: 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, 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;

有什么主意吗?

提前谢谢!

1 个答案:

答案 0 :(得分:1)

代码似乎是正确的。

比较数据库中ListView(controller: _controller) // use it here 序列的值和SEQ_ACC_DATA表的ID列的最大值。

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