我有以下关系
Class UserAccount{
@OneToMany(mappedBy = "firstSharedBy")
private List<Images> imagesFirstShared;
}
Class Images{
@ManyToOne
@JoinColumn
private UserAccount firstSharedBy;
}
我想删除UserAccount实例。所以我这样做。
userAccount.getImagesFirstShared().clear();
entityManager.remove(userAccount);
但它引发了以下异常
Cannot delete or update a parent row: a foreign key constraint fails (`testdb`.`Images`, CONSTRAINT `FK201C4A25D4C117` FOREIGN KEY (`firstSharedBy_USER_NAME`) REFERENCES `USERACCOUNT` (`USER_NAME`))
任何有线索的人?提前致谢
答案 0 :(得分:2)
如果要在删除用户帐户时从数据库中删除图像,则需要将cascade=CascadeType.ALL
属性添加到@OneToMany
注释并删除行userAccount.getImagesFirstShared().clear();
。
如果您不想删除这些图像,则应对图像进行循环,将firstSharedBy
属性设置为null并保存每个Images
实体。只有这样你才能删除UserAccount
实体,因为它没有约束连接。