Du kanske vill prova att använda en anpassad Batcher genom att ställa in egenskapen hibernate.jdbc.factory_class. Att se till att viloläge inte kontrollerar uppdateringsantalet för batchoperationer kan lösa ditt problem, du kan uppnå det genom att göra din anpassade Batcher utöka klassen BatchingBatcher och sedan åsidosätta metoden doExecuteBatch(...) så att den ser ut så här:
@Override
protected void doExecuteBatch(PreparedStatement ps) throws SQLException, HibernateException {
if ( batchSize == 0 ) {
log.debug( "no batched statements to execute" );
}
else {
if ( log.isDebugEnabled() ) {
log.debug( "Executing batch size: " + batchSize );
}
try {
// checkRowCounts( ps.executeBatch(), ps );
ps.executeBatch();
}
catch (RuntimeException re) {
log.error( "Exception executing batch: ", re );
throw re;
}
finally {
batchSize = 0;
}
}
}
Observera att den nya metoden inte kontrollerar resultaten av exekvering av de förberedda satserna. Tänk på att den här ändringen kan påverka viloläge på något oväntat sätt (eller kanske inte).