Простой ответ - да.
Если вы хотите удалить Group
и знаете, что в таблице GroupUser
есть тонны записей, то гораздо лучше создать запрос на удаление, который будет выполнять все в одном пакете вместо одного и одного.
Если у вас нет каскадирования в базовой базе данных (или даже если вы делаете это), рекомендуется делать это в правильном порядке.
Поэтому сначала удалите GroupUser
.
Предполагая, что у вас есть объект Group, который вы хотите удалить.
int numberDeleted = entityManager.createQuery("DELETE FROM GroupUser gu WHERE gu.group.id=:id").setParameter("id",group.getId()).executeUpdate();
Возвращаемое значение int показывает, сколько записей было удалено.
Теперь вы можете окончательно удалить Group
entityManager.remove(group);
entityManager.flush();
UPDATE
Похоже, @OnDelete
на @OneToMany
делает трюк