Vous pouvez essayer d'utiliser un Batcher personnalisé en définissant la propriété hibernate.jdbc.factory_class. S'assurer que l'hibernation ne vérifie pas le nombre de mises à jour des opérations par lots peut résoudre votre problème, vous pouvez y parvenir en faisant en sorte que votre Batcher personnalisé étende la classe BatchingBatcher, puis en remplaçant la méthode doExecuteBatch(...) pour qu'elle ressemble à :
@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;
}
}
}
Notez que la nouvelle méthode ne vérifie pas les résultats de l'exécution des instructions préparées. Gardez à l'esprit que cette modification peut affecter l'hibernation de manière inattendue (ou peut-être pas).