Я использую Hibernate, и несколько раз мне приходилось реализовывать каскадную операцию DELETE от родительского объекта к его дочерним элементам. Я использовал следующие два варианта.
Один из вариантов - выставить getChildren () на родительском объекте, добавить дочерний элемент в возвращенную коллекцию дочерних и разрешить Hibernate автоматически каскадировать DELETE. Недостаток этого параметра в том, что коллекцию getChildren () необходимо предоставлять, даже если она используется только для поддержки каскадирования Hibernate.
Другим вариантом является поиск и удаление потомков вручную в ParentDao.delete (parent). Недостатком этой опции является более нестандартный код. Однако этот параметр может работать лучше, если он использует операторы пакетного удаления.
Какой подход вы чаще всего используете? Видите ли вы другие плюсы и минусы?