休眠从onetomany中删除

我有两个OneToMany关系表

class ServiceProvider {

...

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

}

class ServiceCenterDetails {

... //双向多对一关联到ServiceProviderDomainMap @ManyToOne @JoinColumn(name =“SERVICE_PROVIDER_ID”)private ServiceProvider serviceProvider;

...

}

我正在尝试删除提供的行。 但我得到错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:由造成无法删除或更新父行,外键约束失败( fixolineservice_center_details ,约束FK_qvahoxeovx9vmwl6mcu2c0lyw外键( SERVICE_PROVIDER_ID )参考service_providerID ))

下面是我尝试的方式

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

  int result = query.executeUpdate();

有人可以帮助解决它吗?


错误信息非常清楚:有些外键引用了您要删除的ServiceProvider 。 先删除ServiceCenterDetails

delete from ServiceCenterDetails where serviceProvider.id = :providerId
链接地址: http://www.djcxy.com/p/37043.html

上一篇: Hibernate delete from onetomany

下一篇: Hibernate Criterion in OneToMany relationship