我使用 JPA 进行 mysql 操作,但是在数据库中进行一些手动操作(例如插入、删除、转储等)后,当使用
Repository.save(entityModel)
Duplicate entry 'x' for key 'xxxxx.PRIMARY'
我的主键实体是这个
@Id @GeneratedValue( strategy = GenerationType.SEQUENCE ) protected Long id;
GenerationType.SEQUENCE 维护一个表,即类似于entity_seq,它具有 next_val 列,从该列获取下一行插入到entity_table 中的值。 您已手动插入数据,这意味着您已将序列表留在实体表后面。只需将序列表中的next_val修改为原数据表的(latest_id+1)即可解决此错误。