Как реализовать каскадное удаление в отношении один ко многим в JPA - PullRequest
0 голосов
/ 02 ноября 2019

У меня есть вопрос и ответ. Вопрос имеет 0-n ответов, а ответ всегда содержит 1 вопрос. Если я удалю вопрос, то все связанные ответы также должны быть удалены. Если я удалю ответ, то вопрос не должен быть удален. Как я могу добиться этого с помощью JPA?

Сущность вопроса:

@Getter @Setter
@OneToMany(mappedBy = "question", cascade = CascadeType.REMOVE)
private List<AnswerEntity> answers = new ArrayList<>();

Сущность ответа:

 @Getter @Setter 
 @ManyToOne
 @JoinColumn(name = "question")
 private QuestionEntity question;

Теперь, когда я удаляю вопрос, я получаю сообщение об ошибке:

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Невозможно удалить или обновить родительскую строку: ограничение внешнего ключа не выполняется (myApp. answer, CONSTRAINT FK_ANSWER_question FOREIGN KEY (craftsman) ССЫЛКИ question (ID))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...