从onetomany中删除休眠 [英] Hibernate delete from onetomany

查看:42
本文介绍了从onetomany中删除休眠的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个具有OneToMany关系的表

I have two tables with OneToMany relation

Class ServiceProvider {

class ServiceProvider {

...

@OneToMany(fetch = FetchType.EAGER,mappedBy ="serviceProvider",级联= {CascadeType.ALL,CascadeType.REMOVE},orphanRemoval = true)@OnDelete(action = OnDeleteAction.CASCADE)私人的列出服务中心;...

@OneToMany(fetch=FetchType.EAGER,mappedBy="serviceProvider", cascade={CascadeType.ALL,CascadeType.REMOVE},orphanRemoval = true) @OnDelete(action=OnDeleteAction.CASCADE) private List serviceCenters; ...

}

ServiceCenterDetails类{

class ServiceCenterDetails {

...//双向多对一关联ServiceProviderDomainMap @ManyToOne@JoinColumn(name ="SERVICE_PROVIDER_ID")私人ServiceProviderserviceProvider;

... //bi-directional many-to-one association to ServiceProviderDomainMap @ManyToOne @JoinColumn(name="SERVICE_PROVIDER_ID") private ServiceProvider serviceProvider;

...

}

我正在尝试删除提供行.但是我遇到了错误:

I am trying to delete provide row. But i am getting below error:

由以下原因引起:com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:无法删除或更新父行:外键约束失败( fixoline . service_center_details ,CONSTRAINT FK_qvahoxeovx9vmwl6mcu2c0lyw 外键( SERVICE_PROVIDER_ID )参考 service_provider ( ID ))

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (fixoline.service_center_details, CONSTRAINT FK_qvahoxeovx9vmwl6mcu2c0lyw FOREIGN KEY (SERVICE_PROVIDER_ID) REFERENCES service_provider (ID))

下面是我尝试的方式

  String hql = "DELETE FROM ServiceProvider WHERE id =  :providerId";
  Query query = sessionFactory.getCurrentSession().createQuery(hql);
          query.setParameter("providerId",providerId);

  int result = query.executeUpdate();

有人可以帮助解决它吗?

could someone pls help resolving it?

推荐答案

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails

此异常表明您应该先删除与ServiceProviders关联的ServiceCenterDetails,然后再删除ServiceProviders.

this exception tells that you should delete your ServiceCenterDetails associated with ServiceProviders first and then delete the ServiceProviders.

这篇关于从onetomany中删除休眠的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆