U kunt proberen een aangepaste Batcher te gebruiken door de eigenschap hibernate.jdbc.factory_class in te stellen. Ervoor zorgen dat de slaapstand het aantal updates van batchbewerkingen niet controleert, kan uw probleem mogelijk oplossen. U kunt dat bereiken door uw aangepaste Batcher de klasse BatchingBatcher te laten uitbreiden en vervolgens de methode doExecuteBatch(...) te negeren, zodat deze eruitziet als:
@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;
}
}
}
Merk op dat de nieuwe methode de resultaten van het uitvoeren van de voorbereide instructies niet controleert. Houd er rekening mee dat het aanbrengen van deze wijziging de slaapstand op een onverwachte manier kan beïnvloeden (of misschien niet).