我有两个表,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;
任何想法?
先感谢您!
代码似乎是正确的。
比较在DB并为SEQ_ACC_DATA
表的ID
列中的最大值的ACC_DATA
序列的价值。
如果ID列有值比序列时,你需要增加序列的值,使得新的插入可以通过代码发生。