我有两张单对多关系的表
类服务提供者{
...
@OneToMany(fetch=FetchType.EAGER,mappedBy="serviceProvider", cascade={CascadeType.ALL,CascadeType.REMOVE},orphanRemoval = true) @OnDelete(action=OnDeleteAction.CASCADE) 私有列表 serviceCenters; ...
}
类服务中心详细信息{
... //双向多对一关联到ServiceProviderDomainMap @ManyToOne @JoinColumn(name="SERVICE_PROVIDER_ID") private ServiceProvider serviceProvider;
...
}
我正在尝试删除提供行。但我收到以下错误:
引起:com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:无法删除或更新父行:外键约束失败(fixoline. service_center_details,CONSTRAINT FK_qvahoxeovx9vmwl6mcu2c0lywFOREIGN KEY(SERVICE_PROVIDER_ID)REFERENCES service_provider(ID))
下面是我正在尝试的方式
Run Code Online (Sandbox Code Playgroud)String hql = "DELETE FROM ServiceProvider WHERE id = :providerId"; Query query = sessionFactory.getCurrentSession().createQuery(hql); query.setParameter("providerId",providerId); int result = query.executeUpdate();
有人可以帮忙解决吗?
错误消息非常清楚:存在对ServiceProvider您尝试删除的 s 的外键引用。ServiceCenterDetails先删除:
delete from ServiceCenterDetails where serviceProvider.id = :providerId
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1092 次 |
| 最近记录: |