@Override
 @SuppressWarnings("unchecked")
 public StoredProcedureQuery registerStoredProcedureParameter(
     int position, Class type, ParameterMode mode) {
   storedProcedureCall.registerStoredProcedureParameter(position, type, mode);
   return this;
 }
 @Override
 protected boolean applyFlushModeHint(FlushMode flushMode) {
   storedProcedureCall.setFlushMode(flushMode);
   return true;
 }
 @Override
 protected boolean applyReadOnlyHint(boolean isReadOnly) {
   storedProcedureCall.setReadOnly(isReadOnly);
   return true;
 }
 @Override
 protected boolean applyCacheModeHint(CacheMode cacheMode) {
   storedProcedureCall.setCacheMode(cacheMode);
   return true;
 }
 @Override
 protected boolean applyCacheRegionHint(String regionName) {
   storedProcedureCall.setCacheRegion(regionName);
   return true;
 }
 @Override
 protected boolean applyCacheableHint(boolean isCacheable) {
   storedProcedureCall.setCacheable(isCacheable);
   return true;
 }
 @Override
 protected boolean applyTimeoutHint(int timeout) {
   storedProcedureCall.setTimeout(timeout);
   return true;
 }
 private StoredProcedureOutputs outputs() {
   if (storedProcedureOutputs == null) {
     storedProcedureOutputs = storedProcedureCall.getOutputs();
   }
   return storedProcedureOutputs;
 }
 @Override
 public StoredProcedureQuery registerStoredProcedureParameter(
     String parameterName, Class type, ParameterMode mode) {
   storedProcedureCall.registerStoredProcedureParameter(parameterName, type, mode);
   return this;
 }