我在Java中有2个具有父级-子级关系的类,而删除子级有问题。当我删除一个孩子时,该函数返回true,但是当我检查数据库没有任何反应时,该孩子仍然未被删除。
这是我的班级父级:Engagement.java
date id size type county member_p10 youngest_age sex position
1 20190221 18105265-ab 3 4 1 3 5 1 5
2 20190222 18105265-ab 2 4 1 2 7 1 5
3 20190105 18161665-aa 2 4 1 2 7 2 4
4 20190110 18161665-aa 1 2 1 1 7 2 0
5 20190221 18502020-aa 2 4 5 2 7 1 3
6 20190222 18502020-aa 1 2 5 1 7 1 0
这是我班上的孩子:Sub_Engagement.java
@OneToMany(fetch=FetchType.EAGER, mappedBy="parent", cascade=CascadeType.ALL)
private Collection<Sub_Engagement> subs_engs;
使用此代码POST / GET / PATCH可以正常工作,但DELETE不起作用。
我尝试了这样的解决方案:
@ManyToOne
@JoinColumn(name="parent")
private Engagement parent;
和DELETE有效,但是我尝试更新孩子时PATCH / PUT不起作用。 在此先感谢:)
答案 0 :(得分:0)
安德罗尼库斯(Andronicus)说得对,确实应该有效。奇怪的是,您在进行更新和删除时处于“或非”状态。
再次检查您的persistence.xml。有什么可以覆盖注释的吗?
我还建议启用跟踪并检查实际执行的sql查询。是否记录了删除语句?您的交易确实已提交吗?
我们可以看看您用于删除实体的代码吗?您是使用entitymanager的remove()方法还是执行一些自定义的jpql?
还,您正在使用CMT(例如EJB)还是通过JTA自己处理事务?