[英]JPA CascadeType.ALL not deleting child
我在Java中有2个具有父级-子级关系的类,而删除子级有问题。 当我删除一个孩子时,该函数返回true,但是当我检查数据库没有任何反应时,该孩子仍然没有被删除。
这是我的班级父母:Engagement.java
@OneToMany(fetch=FetchType.EAGER, mappedBy="parent", cascade=CascadeType.ALL)
private Collection<Sub_Engagement> subs_engs;
这是我班上的孩子:Sub_Engagement.java
@ManyToOne
@JoinColumn(name="parent")
private Engagement parent;
用此代码POST / GET / PATCH可以正常工作,但DELETE不起作用。
我尝试了这样的解决方案:
@OneToMany(fetch=FetchType.EAGER, mappedBy="parent", orphanRemoval = true, cascade = { CascadeType.MERGE, CascadeType.REFRESH, CascadeType.DETACH, CascadeType.REMOVE})
private Collection<Sub_Engagement> subs_engs;
和删除有效,但我尝试更新孩子时补丁/输入不起作用。 提前致谢 :)
安德洛尼库斯(Andronicus)正确,那确实应该起作用。 奇怪的是,您的更新和删除要么处于“要么”状态。
仔细检查您的persistence.xml。 有什么东西可以覆盖注释吗?
我还建议启用跟踪并检查实际执行的sql查询。 是否记录了删除语句? 您的交易是否确实已落实?
我们可以看看您用于删除实体的代码吗? 您是使用entitymanager的remove()方法还是执行一些自定义jpql?
另外,您正在使用CMT(例如EJB)还是通过JTA自己处理事务?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.