我得到的约束冲突异常得到控制而删除的条目如何从jointable删除记录具有许多在JPA
一对多的关系我有关系表TransportationEvent和结论
关系islike
@Entity
public class TransportationEvent {
...
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
private List<Conclusion> conclusions = new ArrayList<Conclusion>();
...
}
@Entity
public class Conclusion {
....
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
private List<TransportationEvent> transportationEvents = new ArrayList<TransportationEvent>();
....
}
这里在数据库中我有另外两个表,如
Conclusion_TransportationEvent and TransportationEvent_Conclus离子
这里我的要求是我需要删除两个表中(TransportationEvent和结论)记录
在这里,我试图删除像波纹管结论表记录:
removeConclusions(conclusion.getId());
public void removeConclusions(Long id) {
entityManager = dbConn.getConnection();
Conclusion conclusion = entityManager.find(Conclusion.class, id);
entityManager.getTransaction().begin();
entityManager.remove(conclusion);
entityManager.getTransaction().commit();
}
,但我得到的约束违规错误。
原因:java.sql.SQLException:DELETE语句与REFERENCE约束“FK30CDAB072AAE439”冲突。冲突发生于数据库 “ECT”,表 “dbo.TransportationEvent_Conclusion”,列通过搜索一些论坛上我有类似语法
@Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
'conclusions_id'
和我申请作为
@ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.PERSIST, CascadeType.REMOVE})
@Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
private List<Conclusion> conclusions = new ArrayList<Conclusion>();
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
private List<TransportationEvent> transportationEvents = new ArrayList<TransportationEvent>();
在两个实体中,即使iam geting相同的约束冲突
有人能帮助我如何使用它从Conclus删除记录离子和运输事件。
在此先感谢!