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中删除