Можно ли отправлять операции DELETE пакетами в Hibernate?

Есть аннотация @BatchSize. Насколько я понимаю, она оптимизирует использование сети: запросы INSERT или SELECT собираются в один большой пакет, который целиком исполняется базой данных.

Я пытаюсь понять, можно ли таким же образом оптимизировать запросы DELETE?

У меня есть сущность:

@Entity
public class Cat {
    
    @Id
    private final Integer id;

    @OneToMany(mappedBy = "cat", orphanRemoval = true, cascade = CascadeType.ALL)
    private final Set<Kitty> kittens;
}

Я могу обновить множество котят. Для этого я в транзакции очищаю множество kittens, а потом заполняю его другими значениями. Это генерирует множество DELETE запросов, которые, насколько я понимаю, не объединяются в пакет (а может быть и объединяются, я плохо знаю механизмы Hibernate).

Так вот можно для операции удаления также использовать @BatchSize, будет ли это иметь эффект? Или можно как-то по-другому реализовать пакетное удаление? Или оно мне вообще не нужно?


Ответы (0 шт):