我有一个名为Profile的实体。可以遵循此实体或遵循其他配置文件。
public class Profile{
@ManyToMany(cascade=CascadeType.PERSIST)
@JoinTable(name = "profile_fans")
public Set<Profile> fansFollowed;
}
我想删除个人资料,它会抛出这个错误:
无法删除或更新父行:外键约束失败(
profile_fans
,CONSTRAINTFK48ECA896ADDBF9EF
FOREIGN KEY(fansFollowed_id
)参考profile
(id
))
我想只删除个人资料之间的关系。不是实体。
这可能吗?
答案 0 :(得分:0)
制作addProfile和removeProfile,添加和删除集合
答案 1 :(得分:0)
我认为有更好的解决方案。这就是我所做的,也许可以帮助别人:
List<Profile> followers=JPA.em().createQuery(
"select p from " + Profile.class.getName() + " p " +
"join p.fansFollowed f where f.id = :id")
.setParameter("id", profile.id)
.getResultList();
for (Profile follower : followers) {
follower.fansFollowed.remove(profile);
follower.save();
}
profile.delete();