я хочу использовать спящий режим партия обновление, я попытался партии вставить и она отлично работает, вот конфигурация я использую для спящего режима:Hibernate пакетное обновление не работает
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.hbm2ddl.auto=update
hibernate.show_sql=false
hibernate.jdbc.fetch_size=100
hibernate.jdbc.batch_size=100
hibernate.jdbc.batch_versioned_data=true
hibernate.order_inserts=true
hibernate.order_updates=true
hibernate.cache.use_query_cache=false
hibernate.cache.use_second_level_cache=false
</value>
</property>
и вот DAO код:
public void updateBulkEmployees(List<Employee> employees) throws Exception {
for (int i = 0; i < employees.size(); i++) {
sessionFactory.getCurrentSession().update(employees.get(i));
if (i % 100 == 0) {
sessionFactory.getCurrentSession().flush();
sessionFactory.getCurrentSession().clear();
log.debug("Flushing batch:" + (int) (i/100));
}
}
sessionFactory.getCurrentSession().flush();
sessionFactory.getCurrentSession().clear();
}
ВЫПУСКА: я могу заметить, что выполнение метода занимает столько времени (в то же время, что и без использования пакетной обработки), поэтому пакетное обновление не работает, мне что-то не хватает в конфигурации или что-то не так? сообщите пожалуйста, спасибо.
Просто потому, что он принимает то же самое время, это не означает, что обновления не загружаются. Это также может означать, что дозирование используется, но просто не ускоряет работу. –
, значит, вы имеете в виду, что у конфигурации выше ничего плохого или не может не улучшиться или настроиться больше? –
@JB Nizet, и как сделать вещи быстрее в таком случае, что вы предлагаете? –