У меня была такая же проблема, и я удивлялся, почему это условие ниже не удаляет сирот. Список блюд не был удален в Hibernate (5.0.3.Final), когда я выполнил именованный запрос на удаление:
@OneToMany(mappedBy = "menuPlan", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Dish> dishes = new ArrayList<>();
Тогда я вспомнил, что я должен использовать не именованный запрос на удаление , а EntityManager. Поскольку я использовал метод EntityManager.find(...)
, чтобы извлечь объект, а затем EntityManager.remove(...)
, чтобы удалить его, блюда также были удалены.