· 这个问题是因为本表是因为对于一个关联的外键表存在一个唯一约束,然而你又对于这个唯一约束新增了一个同样的字段。所以需要你去查看 新增这个关系表对应的外键是否存在,或者JPA 一对多的关系是否选择的是同时合并、和同时持久化操作。如果是同时持久化操作就会在更新外键表的时候自己修改主表(根据主表的ID来修改,如果没有的id 就会帮你新增一个主表数据)。
ALL
级联所有实体状态转换
PERSIST
级联实体持久化操作。
MERGE
级联实体合并操作。
REMOVE
级联实体删除操作。
REFRESH
级联实体刷新操作。
DETACH
级联实体分离操作。
@OneToMany(cascade = {CascadeType.ALL} ,fetch= FetchType.EAGER)
我是因为在原来生成的主表上面没有ID ,先保存了主表数据,再来保存外键表。导致出现这个异常。只要把 1对多 、或者 1对1 的关系 cascade 类型+ 同时持久化,把主键表的信息赋值给外键表 然后更新外键表。