繁体   English   中英

JPA CascadeType.ALL不删除子级

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM