У меня есть отношение OneToMany следующим образом:
@Entity
public class Curriculum {
@OneToMany(cascade = CascadeType.ALL)
private Set<WorkExperience> workExperiences;
...
Вот сущность WorkExperience:
@Entity
public class WorkExperience {
...
Когда я пытаюсь удалить WorkExperience следующим образом:
@Override
public void deleteWorkExperience(long workExperienceId) {
workExperienceRepository.delete(workExperienceId);
}
Я получаю следующее исключение:
org.hibernate.exception.ConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`bignibou`.`curriculum_work_experiences`, CONSTRAINT `FKFA6D4B9F8B68AA0C` FOREIGN KEY (`work_experiences`) REFERENCES `work_experience` (`id`))
Мои вопросы заключаются в следующем:
- Если я хочу сохранить таблицу соединений, то есть
curriculum_work_experiences
, как правильно удалить WorkExperience? - Я заметил, что вручную установив для fk значение
on cascade delete
в MySql, он работал правильно, но я не уверен, какая аннотация JPA необходима для достижения того, что я сделал вручную...