// optimistic locking is not supported in batches due to JDBC driver limitations
boolean useOptimisticLock = query.isUsingOptimisticLocking();
boolean runningAsBatch = !useOptimisticLock && adapter.supportsBatchUpdates();
BatchAction action = new SQLServerBatchAction(query, adapter, entityResolver);
action.setBatch(runningAsBatch);
return action;
}