0

我有以下关系

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`))

有任何线索的人吗?提前致谢

4

1 回答 1

2

如果要在删除用户帐户时从数据库中删除图像,则需要将cascade=CascadeType.ALL属性添加到@OneToManyannotation 并删除 line userAccount.getImagesFirstShared().clear();

如果您不想删除这些图像,那么您应该对图像进行循环,将firstSharedBy属性设置为 null 并保存每个Images实体。只有这样你才能删除UserAccount实体,因为它不会有约束连接。

于 2013-04-11T07:05:19.493 回答