Hibernate delete from onetomany

I have two tables with OneToMany relation

class ServiceProvider {

...

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

}

class ServiceCenterDetails {

... //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:

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 ))

below is the way i am trying

  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?


The error message is quite clear: There are foreign key references to the ServiceProvider s you are trying to delete. Delete ServiceCenterDetails first:

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

上一篇: 注释集合属性热切地加载?

下一篇: 休眠从onetomany中删除