У меня есть две таблицы с OneToMany соотношениемHibernate удалить из 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 {
... //bi-directional many-to-one association to ServiceProviderDomainMap @ManyToOne @JoinColumn(name="SERVICE_PROVIDER_ID") private ServiceProvider serviceProvider;
...
}
Я пытаюсь удалить предоставить строку. Но я получаю ниже ошибки:
Вызванный: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Невозможно удалить или обновить родительскую строку:. Ограничение внешнего ключа не удается (fixoline
service_center_details
, скованность FK_qvahoxeovx9vmwl6mcu2c0lyw
FOREIGN KEY (SERVICE_PROVIDER_ID
) Лит 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();
может кто-то пожалуйста помочь ее решению?
К сожалению, у меня нет строк в таблице ServiceCenterDetails. Есть ли что-нибудь еще, что может пойти не так? – Deepak
Исключение говорит иначе. Возможно, вы вставляете их в ту же транзакцию, в которой вы удаляете 'ServiceProvider'? –