Полагаю, вы должны программировать в управляемой среде, поэтому каждый сеанс выполняется в транзакции на уровне базы данных.
Удалить в спящем режиме применить в базе данных, когда session closed
или session flush
.
Поэтому, как вы сказали, когда у вас есть отношения ребенка / родителя, как это; Сначала вы должны удалить дочерние элементы. Но запросы применяются и фиксируются, когда сеанс сбрасывается.
Таким образом, вы должны обработать это самостоятельно и сбросить или закрыть сеанс сразу после удаления потомков.
Или если у вас двунаправленное отношение и в родительской сущности есть множество дочерних элементов. Вы можете использовать cascade.remove
или cascade.delete
в режиме гибернации, чтобы управлять им автоматически.