hibernate.jdbc.factory_classプロパティを設定して、カスタムバッチャーを使用してみることをお勧めします。 hibernateがバッチ操作の更新カウントをチェックしないようにすることで問題が解決する可能性があります。カスタムBatcherでクラスBatchingBatcherを拡張し、メソッドdoExecuteBatch(...)をオーバーライドして次のようにすることで解決できます。
> @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;
}
}
}
新しいメソッドは、プリペアドステートメントの実行結果をチェックしないことに注意してください。この変更を行うと、予期しない方法で休止状態に影響を与える可能性があることに注意してください(またはそうでない場合もあります)。