【发布时间】:2013-10-11 17:19:02
【问题描述】:
我正在尝试通过其中一个外键级联删除连接表中的行,并且它有另一个与之相关的表,我也想删除与此 ID 关联的所有行。所以它看起来像下面的图表。当我将 Session.delete(reqCandObject) 与休眠一起使用时,它可以正常工作并通过从 Candidate_jobReq 表中删除 One 条目以及关联的 cmets 进行级联。但是,我想删除 all 具有特定候选 ID 的 Candidate_jobReq 条目(并删除 cmets)我尝试了下面的函数,但与好的 hibernate.delete(object) 函数不同,这个函数遇到外键约束错误。如何在休眠级联删除的同时删除这些行?
public void deleteWhere(String selectionCase){
Session hibernateSession = this.getSession();
try {
hibernateSession.beginTransaction();
Query q = hibernateSession.createQuery("delete "+ type.getSimpleName() +" where " + selectionCase);
q.executeUpdate();
hibernateSession.getTransaction().commit();
} finally {
hibernateSession.close();
}
}
【问题讨论】:
标签: java hibernate foreign-key-relationship cascade cascading-deletes