Olá!
Estou precisando realizar processamento em lotes, ou seja, a cada 20 updates, realizar o session.flush();
Segui o exemplo da referência do hibernate, onde fala que eu preciso colocar na configuração a seguinte propriedade:
20
funcionou… mas para menos de 20 registros acontece o seguinte erro:
Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
O que eu devo fazer para resolver isso? Veja o exemplo da referência do hibernate:
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
for ( int i=0; i<100000; i++ ) {
Customer customer = new Customer(.....);
session.save(customer); 11:13
if ( i % 20 == 0 ) { //20, same as the JDBC batch size
//flush a batch of inserts and release memory:
session.flush();
session.clear();
}
}
tx.commit();
session.close();