Java constraintvoilationexception:can';t在hibernate jpa中删除或更新父行

Java constraintvoilationexception:can';t在hibernate jpa中删除或更新父行,java,hibernate,jpa,Java,Hibernate,Jpa,我在OneToOne关系Product-->SkuImpl-->skuavaailabilityimpl 产品 SkuImpl sku可用性impl.java 在道 当我插入产品时记录插入到相应的表中。但问题是当我试图删除产品时,我得到了一个例外 javax.persistence.PersistenceException: org.hibernate.exception.ConstraintVoilationException: Cannot delete or update a par

我在
OneToOne
关系
Product
-->
SkuImpl
-->
skuavaailabilityimpl

产品

SkuImpl

sku可用性impl.java

在道

当我插入
产品时
记录插入到相应的表中。但问题是当我试图删除
产品
时,我得到了一个例外

javax.persistence.PersistenceException:  org.hibernate.exception.ConstraintVoilationException:  Cannot delete or  update a parent row: a foreign key constraint fails (`ssz01b`.`blc_product`, CONSTRAINT  `FKBC3A8A84B` FOREIGN KEY (`DEFAULT_SKU_ID`) REFERENCES `blc_sku` (`SKU_ID`))

我在谷歌上搜索解决方案,发现
orphanRemoving=true
可以解决问题,但不幸的是,它对我不起作用,有人能帮我解决这个问题吗。

尝试调用merge,然后在
实体上删除

entityManager.remove(entityManager.merge(entity));

为SkuImpl实体内的SkuAvailability子项添加
orphanRemoving=true

你能显示你的删除代码吗。您试图删除的是托管实体吗?@MadhusudanaReddySunnapu请检查我的更新代码。。。使用
EntityManager
删除
产品为什么不查看显示调用的SQL的日志,然后您就可以解决它了?这是一个被称为调试的过程。@NeilStockton您的意思是在eclipse中调试代码还是通过查看服务器日志?非常感谢您的回答,我使用JPA并使用
EntityManager
提供的
remove()
删除产品实体;经理。删除(实体)
实体
正在从
服务
层加载,当然我正在尝试,将需要时间检查结果bcz我们正在云上构建和部署将需要时间。相同的例外情况我根据您的建议进行了更改,请告诉我为什么会发生此异常?@subburoyal当我们尝试从数据库中删除一行时,会发生此异常,但失败,因为该行仍被其他表引用,因为它具有外键关系。顺便问一下,你能发布这三个实体的完整代码吗?我没有从云复制粘贴的权限。我手动键入并将代码发布到出现问题的地方。。我们正在使用
Broadleaf Commerce
框架,并根据需要进行修改。非常庞大的代码,我无法在这里输入和发布:(非常感谢您的回复,您的意思是对于
SkuImpl
skuaavailabilityimpl
,还是仅对于'SkuImpl'@RimaSorry,已经编辑了答案。仅在SkuImpl实体中用于SkuAvailability属性。
@Entity 
public class SkuAvailabilityImpl implements SkuAvailability{
@OneToOne(optional=true,targetEntity=SkuImpl.class) 
@Cascade(value={org.hibernate.annotations.CascadeType.ALL})
@JoinColumn(name="SKU_ID", referencedColumnName='SKU_ID',insertable=false,updatable=false)
@Cache(usage=CacheConcurrencyStrategy.READ_WRITE)
protected Sku sku;
//setter and getters
}
protected EntityManager manager;
public void remove(Serializable entity){
manager.remove(entity);
manager.flush();//here getting an exception
}
javax.persistence.PersistenceException:  org.hibernate.exception.ConstraintVoilationException:  Cannot delete or  update a parent row: a foreign key constraint fails (`ssz01b`.`blc_product`, CONSTRAINT  `FKBC3A8A84B` FOREIGN KEY (`DEFAULT_SKU_ID`) REFERENCES `blc_sku` (`SKU_ID`))
entityManager.remove(entityManager.merge(entity));