Получение исключения нарушения ограничения при удалении родителя, хотя я использовал cascadeType.all
В соответствии с моим требованием, у меня есть две компании и контакт, которые связаны с отображением @onetomany, и я хочу удалить компанию и связанные с ней контакты. Я использовал Cascade.All, но все равно получаю исключение нарушения ограничения всякий раз, когда пытаюсь удалить компанию.
Модель:
company
-------
private List<Contact> contact;
@OneToMany(fetch = FetchType.LAZY ,mappedBy="company",cascade=CascadeType.ALL,orphanRemoval=true)
public List<Contact> getContact() {
return contact;
}
public void setContact(List<Contact> contact) {
this.contact = contact;
}
contact
-------
private Company company;
@ManyToOne
@JoinColumn(name = "company_id")
public Company getCompany() {
return company;
}
public void setCompany(Company company) {
this.company = company;
Я получаю следующее исключение:
ОШИБКА SqlExceptionHelper:146 - ОШИБКА: обновление или удаление в таблице "company" нарушает ограничение внешнего ключа "fk_6jbjhtdw6ak2in3ln4tlxm0dm" для таблицы "contact" Detail: Key (id)=(71) по-прежнему ссылается из таблицы "contact". org.hibernate.exception.ConstraintViolationException: не удалось выполнить оператор в org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:129)