Пакетная обработка с Hibernate 4 - PullRequest
0 голосов
/ 28 сентября 2018

Я хочу получать пакетные обновления в режиме гибернации.Я интегрировал Hibernate, и я добавил свойство "hibernate.jdbc.batch_size" как 50. У меня сложилось впечатление, что пакетные обновления будут выполняться автоматически после добавления этого свойства.Однако я не вижу ни одного такого запроса, где обновления делаются в пакетном режиме, поскольку у меня свойство show_sql установлено в true.Когда я гуглю это, я нахожу примеры того, как партия может быть смешана с циклом и с очисткой и очисткой.Но это не имеет смысла для меня, поскольку это должно быть реализовано в Hibernate, а не то, что мне нужно реализовать.Я хочу знать, как включить пакетную обработку с Hibernate и как проверить.

РЕДАКТИРОВАТЬ

public void updateTasksInBatch(List<ScheduleTask> tasks) {


        for (ScheduleTask entity : tasks) {
            save(entity);
        }
    }

Этот метод находится на уровне службы и вызывается вконтроллер.Метод сохранения выглядит следующим образом:

public T save(T entity) throws EntityExistsException, 
                                    PersistenceException, 
                                    IllegalArgumentException, 
                                    TransactionRequiredException {
        entityManager.persist(entity);
        return entity;
    }

1 Ответ

0 голосов
/ 28 сентября 2018

Свойство hibernate.jdbc.batch_size по умолчанию влияет на операторы delete и insert и не пакетирует update операторы.

Чтобы включить пакетирование update, необходимо, чтобы свойство hibernate.jdbc.batch_versioned_data было установлено наtrue.Но вы должны быть осторожны с этим свойством, цитируя блог Влада :

Установите для этого свойства значение true, если ваш драйвер JDBC возвращает правильное число строк из executeBatch ().Обычно безопасно включить эту опцию.Hibernate будет использовать пакетный DML для автоматически версионных данных.По умолчанию установлено значение false.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...