在我的Spring Data / JPA项目中,我使用了ProstgreSQL数据库。
我在cards
表上使用了以下映射作为我的JPA实体PK:
@Id
@SequenceGenerator(name = "cards_id_seq", sequenceName = "cards_id_seq", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.AUTO, generator = "cards_id_seq")
private Long id;
一切正常,直到其他一些应用程序或人员不会手动将新记录插入此表中。一旦发生,我的应用程序就会失败并出现以下错误:
Caused by: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "cards_pkey"
Detail: Key (id)=(42) already exists.
当由于PostgreSQL序列对象与数据库中的实际PK ID之间不同步而尝试插入记录时。
我做错了什么以及如何解决这种情况,以便为通过我的应用程序插入的新记录分配正确的ID?