Hibernate 在“a”中;“一对多”;关系我想从简历中删除一个学位,我得到一个“a”;“交易回滚”;例外

Hibernate 在“a”中;“一对多”;关系我想从简历中删除一个学位,我得到一个“a”;“交易回滚”;例外,hibernate,jpa,annotations,ejb-3.0,Hibernate,Jpa,Annotations,Ejb 3.0,在这些类别(CV和学位)之间的“一对多”关系中。 我的场景:一个简历有3个度。当我想从简历中删除一个度时,我得到一个“事务回滚”异常 原因:java.sql.BatchUpdateException:无法删除或更新父行:外键约束失败(consoftcv/cv_度,约束FKA278F3B18D2CAE7外键(degrees_DegreeId)引用degrees(DegreeId) 我正在使用hibernate,EJB..有注释吗?? thx听起来好像您删除了学位,而没有先从CV中删除引用。让我们看

在这些类别(CV和学位)之间的“一对多”关系中。 我的场景:一个简历有3个度。当我想从简历中删除一个度时,我得到一个“事务回滚”异常

原因:java.sql.BatchUpdateException:无法删除或更新父行:外键约束失败(
consoftcv/cv_度
,约束
FKA278F3B18D2CAE7
外键(
degrees_DegreeId
)引用
degrees
DegreeId

我正在使用hibernate,EJB..有注释吗??
thx

听起来好像您删除了学位,而没有先从CV中删除引用。让我们看看你用来删除的代码。是的。。公共空删除(度E){//todo-AutoDebug方法e= .eM.Dead(Deave.类,E.GETDeReIDEE());如果(e!= null)EM.Dead(e);}我是否应该在中间表之前删除引用??!!!!我想这是自动完成的。如果没有JPA或hibernate的注释,我应该手动删除它吗。。如果您配置了级联,thxHibernate应该负责级联。您能显示学位和CV的配置吗?@OneToMany(fetch=FetchType.EAGER,cascade={CascadeType.MERGE,CascadeType.REFRESH,CascadeType.REMOVE})@IndexColumn(name=“dg”)私有列表学位@manytone(fetch=FetchType.EAGER)私有CV;
public void delete(Degrees e) 
{ 
   e = em.find(Degrees.class, e.getDegreeId()); 
   if (e != null) 
     em.remove(e); 
}