Bạn có thể muốn thử sử dụng Batcher tùy chỉnh bằng cách đặt thuộc tính hibernate.jdbc.factory_class. Đảm bảo chế độ ngủ đông sẽ không kiểm tra số lượng cập nhật của các hoạt động hàng loạt có thể khắc phục sự cố của bạn, bạn có thể đạt được điều đó bằng cách làm cho Batcher tùy chỉnh của mình mở rộng lớp BatchingBatcher và sau đó ghi đè phương thức doExecuteBatch (...) để trông giống như:
@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;
}
}
}
Lưu ý rằng phương pháp mới không kiểm tra kết quả thực hiện các câu lệnh đã chuẩn bị. Hãy nhớ rằng việc thực hiện thay đổi này có thể ảnh hưởng đến chế độ ngủ đông theo một số cách không mong muốn (hoặc có thể không).