我有两个表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;
有什么主意吗?
提前谢谢!
答案 0 :(得分:1)
代码似乎是正确的。
比较数据库中ListView(controller: _controller) // use it here
序列的值和SEQ_ACC_DATA
表的ID
列的最大值。
如果ID列的值大于序列,则需要增加序列的值,以便可以通过代码进行新的插入。