Class StoredProcedureCall

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, Call
    Direct Known Subclasses:
    PLSQLStoredProcedureCall, StoredFunctionCall

    public class StoredProcedureCall
    extends org.eclipse.persistence.internal.databaseaccess.DatabaseCall
    Purpose: Used to define a platform independent procedure call. This supports output parameters. Procedures can also be called through custom SQL.
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourceCall

        org.eclipse.persistence.internal.databaseaccess.DatasourceCall.ParameterType
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.util.List<org.eclipse.persistence.internal.helper.DatabaseField> optionalArguments  
      protected java.util.List<java.lang.String> procedureArgumentNames  
      protected java.lang.String procedureName  
      • Fields inherited from class org.eclipse.persistence.internal.databaseaccess.DatabaseCall

        executeReturnValue, fields, fieldsArray, firstResult, FIRSTRESULT_FIELD, generatedKeys, hasAllocatedConnection, hasMultipleResultSets, hasOptimisticLock, ignoreFirstRowSetting, ignoreMaxResultsSetting, isBatchExecutionSupported, isCallableStatementRequired, isCursorOutputProcedure, isFieldMatchingRequired, isMultipleCursorOutputProcedure, isResultSetScrollable, MAXROW_FIELD, maxRows, queryTimeout, queryTimeoutUnit, result, resultSetConcurrency, resultSetFetchSize, resultSetType, returnMultipleResultSetCollections, returnsResultSet, shouldBuildOutputRow, shouldCacheStatement, shouldReturnGeneratedKeys, sqlString, statement, usesBinding
      • Fields inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourceCall

        EXECUTE_UPDATE, isNativeConnectionRequired, isPrepared, NO_RETURN, outputCursors, parameterBindings, parameters, parameterTypes, query, RETURN_CURSOR, RETURN_MANY_ROWS, RETURN_ONE_ROW, returnType, shouldProcessTokenInQuotes
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addNamedArgument​(java.lang.String procedureParameterAndArgumentFieldName)
      PUBLIC: Define the argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName)
      PUBLIC: Define the argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, int type)
      PUBLIC: Define the input argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, int type, java.lang.String typeName)
      PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, int type, java.lang.String typeName, java.lang.Class javaType)
      PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, int type, java.lang.String typeName, java.lang.Class javaType, org.eclipse.persistence.internal.helper.DatabaseField nestedType)
      PUBLIC: Define the inout argument to the stored procedure and the field/argument name to be substituted for it.
      void addNamedArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, int type, java.lang.String typeName, java.lang.String javaTypeName)
      PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, int type, java.lang.String typeName, org.eclipse.persistence.internal.helper.DatabaseField nestedType)
      PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, java.lang.Class type)
      PUBLIC: Define the input argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedArgumentValue​(java.lang.String procedureParameterName, java.lang.Object argumentValue)
      PUBLIC: Define the argument to the stored procedure and the value to be substitute for it.
      void addNamedCursorOutputArgument​(java.lang.String argumentName)
      ADVANCED: Add the cursor output parameter to the procedure.
      void addNamedInOutputArgument​(java.lang.String procedureParameterAndArgumentFieldName)
      PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out.
      void addNamedInOutputArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName)
      PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out.
      void addNamedInOutputArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, java.lang.Class type)
      PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out.
      void addNamedInOutputArgument​(java.lang.String procedureParameterName, java.lang.String inArgumentFieldName, java.lang.String outArgumentFieldName, int type)
      PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out.
      void addNamedInOutputArgument​(java.lang.String procedureParameterName, java.lang.String inArgumentFieldName, java.lang.String outArgumentFieldName, int type, java.lang.String typeName)
      PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out.
      void addNamedInOutputArgument​(java.lang.String procedureParameterName, java.lang.String inArgumentFieldName, java.lang.String outArgumentFieldName, int type, java.lang.String typeName, java.lang.Class classType)
      PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out.
      void addNamedInOutputArgument​(java.lang.String procedureParameterName, java.lang.String inArgumentFieldName, java.lang.String outArgumentFieldName, int type, java.lang.String typeName, java.lang.Class javaType, org.eclipse.persistence.internal.helper.DatabaseField nestedType)
      PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out.
      void addNamedInOutputArgument​(java.lang.String procedureParameterName, java.lang.String inArgumentFieldName, java.lang.String outArgumentFieldName, java.lang.Class type)
      PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out.
      void addNamedInOutputArgumentValue​(java.lang.String procedureParameterName, java.lang.Object inArgumentValue, java.lang.String outArgumentFieldName, java.lang.Class type)
      PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out.
      void addNamedOutputArgument​(java.lang.String procedureParameterAndArgumentFieldName)
      PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedOutputArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName)
      PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedOutputArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, int type)
      PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedOutputArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, int type, java.lang.String typeName)
      PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedOutputArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, int jdbcType, java.lang.String typeName, java.lang.Class javaType)
      PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedOutputArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, int jdbcType, java.lang.String typeName, java.lang.Class javaType, org.eclipse.persistence.internal.helper.DatabaseField nestedType)
      PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedOutputArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, java.lang.Class type)
      PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it.
      void addOptionalArgument​(java.lang.String argument)
      PUBLIC: Add the optional argument.
      void addUnamedArgument​(java.lang.String argumentFieldName)
      PUBLIC: Define the field/argument name to be substitute for the index argument.
      void addUnamedArgument​(java.lang.String argumentFieldName, int type)
      PUBLIC: Define the argument to the stored procedure for the index argument.
      void addUnamedArgument​(java.lang.String argumentFieldName, int type, java.lang.String typeName)
      PUBLIC: Define the argument to the stored procedure for the index argument.
      void addUnamedArgument​(java.lang.String argumentFieldName, int type, java.lang.String typeName, org.eclipse.persistence.internal.helper.DatabaseField nestedType)
      PUBLIC: Define the argument to the stored procedure for the index argument.
      void addUnamedArgument​(java.lang.String argumentFieldName, java.lang.Class type)
      PUBLIC: Define the argument to the stored procedure for the index argument.
      void addUnamedArgumentValue​(java.lang.Object argumentValue)
      PUBLIC: Define the argument to the stored procedure for the index argument.
      void addUnamedInOutputArgument​(java.lang.String argumentFieldName)
      PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out.
      void addUnamedInOutputArgument​(java.lang.String argumentFieldName, java.lang.Class type)
      PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out.
      void addUnamedInOutputArgument​(java.lang.String inArgumentFieldName, java.lang.String outArgumentFieldName, int type)
      PUBLIC: Define the argument to the stored procedure for the index argument.
      void addUnamedInOutputArgument​(java.lang.String inArgumentFieldName, java.lang.String outArgumentFieldName, int type, java.lang.String typeName)
      PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out.
      void addUnamedInOutputArgument​(java.lang.String inArgumentFieldName, java.lang.String outArgumentFieldName, int type, java.lang.String typeName, java.lang.Class collection)
      PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out.
      void addUnamedInOutputArgument​(java.lang.String inArgumentFieldName, java.lang.String outArgumentFieldName, int type, java.lang.String typeName, java.lang.Class collection, org.eclipse.persistence.internal.helper.DatabaseField nestedType)
      PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out.
      void addUnamedInOutputArgument​(java.lang.String inArgumentFieldName, java.lang.String outArgumentFieldName, java.lang.Class type)
      PUBLIC: Define the argument to the stored procedure for the index argument.
      void addUnamedInOutputArgumentValue​(java.lang.Object inArgumentValue, java.lang.String outArgumentFieldName, java.lang.Class type)
      PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out.
      void addUnamedOutputArgument​(java.lang.String argumentFieldName)
      PUBLIC: Define the field/argument name to be substitute for the index output argument.
      void addUnamedOutputArgument​(java.lang.String argumentFieldName, int type)
      PUBLIC: Define the field/argument name to be substitute for the index output argument.
      void addUnamedOutputArgument​(java.lang.String argumentFieldName, int type, java.lang.String typeName)
      PUBLIC: Define the field/argument name to be substitute for the index output argument.
      void addUnamedOutputArgument​(java.lang.String argumentFieldName, int jdbcType, java.lang.String typeName, java.lang.Class javaType)
      PUBLIC: Define the field/argument name to be substitute for the index output argument.
      void addUnamedOutputArgument​(java.lang.String argumentFieldName, int jdbcType, java.lang.String typeName, java.lang.Class javaType, org.eclipse.persistence.internal.helper.DatabaseField nestedType)
      PUBLIC: Define the field/argument name to be substitute for the index output argument.
      void addUnamedOutputArgument​(java.lang.String argumentFieldName, java.lang.Class type)
      PUBLIC: Define the field/argument name to be substitute for the index output argument.
      void addUnnamedCursorOutputArgument​(java.lang.String outputRowFieldName)
      ADVANCED: Add the cursor output parameter to the procedure.
      void bindParameter​(java.io.Writer writer, java.lang.Object parameter)
      Bind the parameter.
      java.lang.String getCallHeader​(org.eclipse.persistence.internal.databaseaccess.DatabasePlatform platform)
      INTERNAL: Return call header for the call string.
      int getFirstParameterIndexForCallString()
      INTERNAL: Return the first index of parameter to be placed inside brackets in the call string
      java.lang.String getLogString​(org.eclipse.persistence.internal.databaseaccess.Accessor accessor)
      Return the SQL string for logging purposes.
      java.util.List<org.eclipse.persistence.internal.helper.DatabaseField> getOptionalArguments()
      INTERNAL: Return the list of optional arguments.
      java.lang.Object getOutputParameterValue​(java.sql.CallableStatement statement, int index, org.eclipse.persistence.internal.sessions.AbstractSession session)  
      java.util.List<java.lang.String> getProcedureArgumentNames()
      INTERNAL: The if the names are provide the order is not required to match the call def.
      java.lang.String getProcedureName()
      PUBLIC: Return the name of the store procedure on the database.
      boolean hasOptionalArguments()
      INTERNAL: Return if there are any optional arguments.
      protected boolean isCallableStatementRequired()
      Callable statements are used for StoredProcedures that have argument names (named parameters)
      boolean isStoredProcedureCall()  
      protected void prepareInternal​(org.eclipse.persistence.internal.sessions.AbstractSession session)
      INTERNAL: Called by prepare method only.
      java.sql.Statement prepareStatement​(org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor accessor, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow, org.eclipse.persistence.internal.sessions.AbstractSession session)
      INTERNAL: Prepare the JDBC statement, this may be parameterize or a call statement.
      void setHasMultipleResultSets​(boolean hasMultipleResultSets)
      PUBLIC: Set if the call returns multiple result sets.
      void setOptionalArguments​(java.util.List<org.eclipse.persistence.internal.helper.DatabaseField> optionalArguments)
      INTERNAL: Set the list of optional arguments.
      void setProcedureArgumentNames​(java.util.List<java.lang.String> procedureArgumentNames)
      INTERNAL: The if the names are provide the order is not required to match the call def.
      void setProcedureName​(java.lang.String procedureName)
      PUBLIC: (REQUIRED) Set the name of the store procedure on the database.
      void setReturnsResultSet​(boolean returnsResultSet)
      PUBLIC: Some database support stored procedures returning result sets.
      java.lang.String toString()  
      protected void useCursorOutputResultSet​(java.lang.String argumentName, java.lang.String outputFieldName)
      INTERNAL: Add the unnamed output cursor to return the result.
      void useNamedCursorOutputAsResultSet​(java.lang.String argumentName)
      PUBLIC: Used for Oracle result sets through procedures.
      void useUnnamedCursorOutputAsResultSet()
      PUBLIC: Used for Oracle result sets through procedures.
      void useUnnamedCursorOutputAsResultSet​(int position)
      PUBLIC: Used for Oracle result sets through procedures.
      • Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatabaseCall

        addContext, appendLogParameters, appendParameter, buildNewQueryMechanism, buildOutputRow, buildQueryMechanism, createInOutParameter, getCallString, getContexts, getCursorOutIndex, getExecuteReturnValue, getFields, getFieldsArray, getFieldWithTypeFromDescriptor, getFirstResult, getGeneratedKeys, getMaxRows, getOutputParameterValue, getOutputRowFields, getQueryString, getQueryTimeout, getResult, getResultSetConcurrency, getResultSetFetchSize, getResultSetType, getReturnsResultSet, getSQLString, getStatement, hasAllocatedConnection, hasMultipleResultSets, hasOptimisticLock, isBatchExecutionSupported, isCursorOutputProcedure, isCursorReturned, isDynamicCall, isFieldMatchingRequired, isFinished, isLOBLocatorNeeded, isMultipleCursorOutputProcedure, isNonCursorOutputProcedure, isResultSetScrollable, matchFieldOrder, prepare, prepareInternalParameters, returnMultipleResultSetCollections, setBatchExecutionSupported, setContexts, setExecuteReturnValue, setFields, setFirstResult, setGeneratedKeys, setHasAllocatedConnection, setHasOptimisticLock, setIgnoreFirstRowSetting, setIgnoreMaxResultsSetting, setIsCallableStatementRequired, setIsCursorOutputProcedure, setIsFieldMatchingRequired, setIsMultipleCursorOutputProcedure, setIsResultSetScrollable, setMaxRows, setQueryString, setQueryTimeout, setQueryTimeoutUnit, setResult, setResultSetConcurrency, setResultSetFetchSize, setResultSetType, setReturnMultipleResultSetCollections, setShouldBuildOutputRow, setShouldCacheStatement, setShouldReturnGeneratedKeys, setSQLStringInternal, setStatement, shouldBuildOutputRow, shouldCacheStatement, shouldCacheStatement, shouldIgnoreFirstRowSetting, shouldIgnoreMaxResultsSetting, shouldReturnGeneratedKeys, translate
      • Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourceCall

        appendIn, appendIn, appendIn, appendInOut, appendInOut, appendInOut, appendInOut, appendInOut, appendLiteral, appendLiteral, appendLiteral, appendModify, appendModify, appendModify, appendOut, appendOut, appendOut, appendOutCursor, appendOutCursor, appendTranslation, appendTranslation, appendTranslation, areManyRowsReturned, argumentMarker, clone, createField, getOutputCursors, getParameterBindings, getParameters, getParameterTypes, getQuery, getReturnType, getValueForInOutParameter, getValueForInParameter, hasOutputCursors, hasParameters, isEISInteraction, isExecuteUpdate, isJPQLCall, isNativeConnectionRequired, isNothingReturned, isOneRowReturned, isOutputParameterType, isPrepared, isQueryStringCall, isReturnSet, isSQLCall, isStoredFunctionCall, isStoredPLSQLFunctionCall, isStoredPLSQLProcedureCall, isUsesBindingSet, returnCursor, returnManyRows, returnNothing, returnOneRow, setExecuteUpdate, setIsNativeConnectionRequired, setIsPrepared, setParameterBindings, setParameters, setParameterTypes, setQuery, setReturnType, setUsesBinding, translateCustomQuery, translatePureSQLCustomQuery, translateQueryString, translateQueryStringAndBindParameters, translateQueryStringForParameterizedIN, usesBinding, usesBinding, usesBinding, whitespace
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • procedureName

        protected java.lang.String procedureName
      • procedureArgumentNames

        protected java.util.List<java.lang.String> procedureArgumentNames
      • optionalArguments

        protected java.util.List<org.eclipse.persistence.internal.helper.DatabaseField> optionalArguments
    • Constructor Detail

      • StoredProcedureCall

        public StoredProcedureCall()
    • Method Detail

      • addNamedArgument

        public void addNamedArgument​(java.lang.String procedureParameterAndArgumentFieldName)
        PUBLIC: Define the argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterAndArgumentFieldName is the name of the procedure argument expected, and is the field or argument name to be used to pass to the procedure. These names are assumed to be the same, if not this method can be called with two arguments.
      • addNamedArgument

        public void addNamedArgument​(java.lang.String procedureParameterName,
                                     java.lang.String argumentFieldName)
        PUBLIC: Define the argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the procedure. If these names are the same (as they normally are) this method can be called with a single argument.
      • addNamedArgumentValue

        public void addNamedArgumentValue​(java.lang.String procedureParameterName,
                                          java.lang.Object argumentValue)
        PUBLIC: Define the argument to the stored procedure and the value to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentValue is the value of the argument to be used to pass to the procedure.
      • addNamedArgument

        public void addNamedArgument​(java.lang.String procedureParameterName,
                                     java.lang.String argumentFieldName,
                                     java.lang.Class type)
        PUBLIC: Define the input argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the user. The type is the type of Java class for the field, and is dependent on the type required by the procedure. This is used to set the type in case null is passed in.
      • addNamedArgument

        public void addNamedArgument​(java.lang.String procedureParameterName,
                                     java.lang.String argumentFieldName,
                                     int type)
        PUBLIC: Define the input argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the user. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type required by the procedure.
      • addNamedArgument

        public void addNamedArgument​(java.lang.String procedureParameterName,
                                     java.lang.String argumentFieldName,
                                     int type,
                                     java.lang.String typeName)
        PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the procedure. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type required by the procedure. The typeName is the JDBC type name, this may be required for ARRAY or STRUCT types.
      • addNamedArgument

        public void addNamedArgument​(java.lang.String procedureParameterName,
                                     java.lang.String argumentFieldName,
                                     int type,
                                     java.lang.String typeName,
                                     java.lang.Class javaType)
        PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the procedure. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type required by the procedure. The typeName is the JDBC type name, this may be required for ARRAY or STRUCT types. The javaType is the mapped Class that has an ObjectRelationalDataTypeDescriptor for the ARRAY or STRUCT type typeName
      • addNamedArgument

        public void addNamedArgument​(java.lang.String procedureParameterName,
                                     java.lang.String argumentFieldName,
                                     int type,
                                     java.lang.String typeName,
                                     java.lang.Class javaType,
                                     org.eclipse.persistence.internal.helper.DatabaseField nestedType)
        PUBLIC: Define the inout argument to the stored procedure and the field/argument name to be substituted for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the procedure. The type is the JDBC type code, this is dependent on the type required by the procedure. The typeName is the JDBC type name, this may be required for ARRAY or STRUCT types. The javaType is the mapped Class that has an ObjectRelationalDataTypeDescriptor for the ARRAY or STRUCT type typeName The nestedType is a DatabaseField with type information set to match the VARRAYs object types
      • addNamedArgument

        public void addNamedArgument​(java.lang.String procedureParameterName,
                                     java.lang.String argumentFieldName,
                                     int type,
                                     java.lang.String typeName,
                                     java.lang.String javaTypeName)
        PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the procedure. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type required by the procedure. The typeName is the JDBC type name, this may be required for ARRAY or STRUCT types. The javaType is the name of the mapped Class that has an ObjectRelationalDataTypeDescriptor for the ARRAY or STRUCT type typeName
      • addNamedArgument

        public void addNamedArgument​(java.lang.String procedureParameterName,
                                     java.lang.String argumentFieldName,
                                     int type,
                                     java.lang.String typeName,
                                     org.eclipse.persistence.internal.helper.DatabaseField nestedType)
        PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the procedure. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type required by the procedure. The typeName is the JDBC type name, as required for STRUCT and ARRAY types. The nestedType is a DatabaseField with type information set to match the VARRAYs object types
      • addNamedInOutputArgument

        public void addNamedInOutputArgument​(java.lang.String procedureParameterAndArgumentFieldName)
        PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out. The procedureParameterAndArgumentFieldName is the name of the procedure argument expected, the field or argument name to be used to pass to the procedure and, the field or argument name to be used is the result of the output row.
      • addNamedInOutputArgument

        public void addNamedInOutputArgument​(java.lang.String procedureParameterName,
                                             java.lang.String argumentFieldName)
        PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the procedure and is the result of the output row.
      • addNamedInOutputArgument

        public void addNamedInOutputArgument​(java.lang.String procedureParameterName,
                                             java.lang.String argumentFieldName,
                                             java.lang.Class type)
        PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the procedure and is the result of the output row. The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
      • addNamedInOutputArgument

        public void addNamedInOutputArgument​(java.lang.String procedureParameterName,
                                             java.lang.String inArgumentFieldName,
                                             java.lang.String outArgumentFieldName,
                                             java.lang.Class type)
        PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out. The procedureParameterName is the name of the procedure argument expected. The inArgumentFieldName is the field or argument name to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type the Java class desired back from the procedure, if a struct is returned and the class has an ObjectRelationalDataTypeDescriptor defined .
      • addNamedInOutputArgument

        public void addNamedInOutputArgument​(java.lang.String procedureParameterName,
                                             java.lang.String inArgumentFieldName,
                                             java.lang.String outArgumentFieldName,
                                             int type)
        PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out. The procedureParameterName is the name of the procedure argument expected. The inArgumentFieldName is the field or argument name to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this dependent on the type returned from the procedure.
      • addNamedInOutputArgument

        public void addNamedInOutputArgument​(java.lang.String procedureParameterName,
                                             java.lang.String inArgumentFieldName,
                                             java.lang.String outArgumentFieldName,
                                             int type,
                                             java.lang.String typeName)
        PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out. The procedureParameterName is the name of the procedure argument expected. The inArgumentFieldName is the field or argument name to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY or STRUCT types.
      • addNamedInOutputArgument

        public void addNamedInOutputArgument​(java.lang.String procedureParameterName,
                                             java.lang.String inArgumentFieldName,
                                             java.lang.String outArgumentFieldName,
                                             int type,
                                             java.lang.String typeName,
                                             java.lang.Class classType)
        PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out. The procedureParameterName is the name of the procedure argument expected. The inArgumentFieldName is the field or argument name to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for STRUCT and ARRAY types. The classType is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
      • addNamedInOutputArgument

        public void addNamedInOutputArgument​(java.lang.String procedureParameterName,
                                             java.lang.String inArgumentFieldName,
                                             java.lang.String outArgumentFieldName,
                                             int type,
                                             java.lang.String typeName,
                                             java.lang.Class javaType,
                                             org.eclipse.persistence.internal.helper.DatabaseField nestedType)
        PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out. The procedureParameterName is the name of the procedure argument expected. The inArgumentFieldName is the field or argument name to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY types. The javaType is the java class to return instead of the ARRAY and STRUCT types if a conversion is possible. The nestedType is a DatabaseField with type information set to match the VARRAYs object types
      • addNamedInOutputArgumentValue

        public void addNamedInOutputArgumentValue​(java.lang.String procedureParameterName,
                                                  java.lang.Object inArgumentValue,
                                                  java.lang.String outArgumentFieldName,
                                                  java.lang.Class type)
        PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out. The procedureParameterName is the name of the procedure argument expected. The inArgumentValue is the value of the argument to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
      • addNamedOutputArgument

        public void addNamedOutputArgument​(java.lang.String procedureParameterAndArgumentFieldName)
        PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterAndArgumentFieldName is the name of the procedure argument expected, and is the field or argument name to be used to pass to the procedure. These names are assumed to be the same, if not this method can be called with two arguments.
      • addNamedOutputArgument

        public void addNamedOutputArgument​(java.lang.String procedureParameterName,
                                           java.lang.String argumentFieldName)
        PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the procedure. If these names are the same (as they normally are) this method can be called with a single argument.
      • addNamedOutputArgument

        public void addNamedOutputArgument​(java.lang.String procedureParameterName,
                                           java.lang.String argumentFieldName,
                                           java.lang.Class type)
        PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the procedure. If these names are the same (as they normally are) this method can be called with a single argument. The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
      • addNamedOutputArgument

        public void addNamedOutputArgument​(java.lang.String procedureParameterName,
                                           java.lang.String argumentFieldName,
                                           int type)
        PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the procedure. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type returned from the procedure.
      • addNamedOutputArgument

        public void addNamedOutputArgument​(java.lang.String procedureParameterName,
                                           java.lang.String argumentFieldName,
                                           int type,
                                           java.lang.String typeName)
        PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the procedure. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY or STRUCT types.
      • addNamedOutputArgument

        public void addNamedOutputArgument​(java.lang.String procedureParameterName,
                                           java.lang.String argumentFieldName,
                                           int jdbcType,
                                           java.lang.String typeName,
                                           java.lang.Class javaType)
        PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used is the result of the output row. The jdbcType is the JDBC type code, this dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY and STRUCT types. The javaType is the java class to return instead of the ARRAY and STRUCT types if a conversion is possible.
      • addNamedOutputArgument

        public void addNamedOutputArgument​(java.lang.String procedureParameterName,
                                           java.lang.String argumentFieldName,
                                           int jdbcType,
                                           java.lang.String typeName,
                                           java.lang.Class javaType,
                                           org.eclipse.persistence.internal.helper.DatabaseField nestedType)
        PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used is the result of the output row. The jdbcType is the JDBC type code, this dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY and STRUCT types. The javaType is the java class to return instead of the ARRAY and STRUCT types if a conversion is possible. The nestedType is a DatabaseField with type information set to match the VARRAYs object types
      • addUnamedArgument

        public void addUnamedArgument​(java.lang.String argumentFieldName)
        PUBLIC: Define the field/argument name to be substitute for the index argument. This method is used if the procedure is not named and the order is explicit, names must be added in the correct order. The argumentFieldName is the field or argument name to be used to pass to the procedure.
      • addUnamedArgumentValue

        public void addUnamedArgumentValue​(java.lang.Object argumentValue)
        PUBLIC: Define the argument to the stored procedure for the index argument. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The argumentValue is the value of the argument to be used to pass to the procedure.
      • addUnamedArgument

        public void addUnamedArgument​(java.lang.String argumentFieldName,
                                      java.lang.Class type)
        PUBLIC: Define the argument to the stored procedure for the index argument. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The argumentFieldName is the field or argument name to be used to pass to the user. The type is the type of Java class for the field, and is dependent on the type required by the procedure. This is used to set the type in case null is passed in.
      • addUnamedArgument

        public void addUnamedArgument​(java.lang.String argumentFieldName,
                                      int type)
        PUBLIC: Define the argument to the stored procedure for the index argument. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The argumentFieldName is the field or argument name to be used to pass to the user. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type required by the procedure.
      • addUnamedArgument

        public void addUnamedArgument​(java.lang.String argumentFieldName,
                                      int type,
                                      java.lang.String typeName)
        PUBLIC: Define the argument to the stored procedure for the index argument. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The argumentFieldName is the field or argument name to be used to pass to the procedure. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type required by the procedure. The typeName is the JDBC type name, this may be required for ARRAY or STRUCT types.
      • addUnamedArgument

        public void addUnamedArgument​(java.lang.String argumentFieldName,
                                      int type,
                                      java.lang.String typeName,
                                      org.eclipse.persistence.internal.helper.DatabaseField nestedType)
        PUBLIC: Define the argument to the stored procedure for the index argument. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The argumentFieldName is the field or argument name to be used to pass to the procedure. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type required by the procedure. The typeName is the JDBC type name, as required for STRUCT and ARRAY types. The nestedType is a DatabaseField with type information set to match the VARRAYs object types
      • addUnamedInOutputArgument

        public void addUnamedInOutputArgument​(java.lang.String inArgumentFieldName,
                                              java.lang.String outArgumentFieldName,
                                              java.lang.Class type)
        PUBLIC: Define the argument to the stored procedure for the index argument. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The inArgumentFieldName is the field name of the argument to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
      • addUnamedInOutputArgument

        public void addUnamedInOutputArgument​(java.lang.String inArgumentFieldName,
                                              java.lang.String outArgumentFieldName,
                                              int type)
        PUBLIC: Define the argument to the stored procedure for the index argument. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The inArgumentFieldName is the field name of the argument to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type returned from the procedure.
      • addUnamedInOutputArgument

        public void addUnamedInOutputArgument​(java.lang.String inArgumentFieldName,
                                              java.lang.String outArgumentFieldName,
                                              int type,
                                              java.lang.String typeName)
        PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The inArgumentFieldName is the field name of the argument to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY or STRUCT types.
      • addUnamedInOutputArgument

        public void addUnamedInOutputArgument​(java.lang.String argumentFieldName,
                                              java.lang.Class type)
        PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The argumentFieldName is the field name of the argument to be used to pass to the procedure and to be used is the result of the output row. The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
      • addUnamedInOutputArgument

        public void addUnamedInOutputArgument​(java.lang.String argumentFieldName)
        PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The argumentFieldName is the field name of the argument to be used to pass to the procedure and to be used is the result of the output row.
      • addUnamedInOutputArgument

        public void addUnamedInOutputArgument​(java.lang.String inArgumentFieldName,
                                              java.lang.String outArgumentFieldName,
                                              int type,
                                              java.lang.String typeName,
                                              java.lang.Class collection)
        PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The inArgumentFieldName is the field or argument name to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY types. The collectionClass is the java class to return instead of the ARRAY type.
      • addUnamedInOutputArgument

        public void addUnamedInOutputArgument​(java.lang.String inArgumentFieldName,
                                              java.lang.String outArgumentFieldName,
                                              int type,
                                              java.lang.String typeName,
                                              java.lang.Class collection,
                                              org.eclipse.persistence.internal.helper.DatabaseField nestedType)
        PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The argumentFieldName is the field or argument name to be used is the result of the output row. The jdbcType is the JDBC type code, this dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY and STRUCT types. The javaType is the java class to return instead of the ARRAY and STRUCT types if a conversion is possible. The nestedType is a DatabaseField with type information set to match the VARRAYs object types
      • addUnamedInOutputArgumentValue

        public void addUnamedInOutputArgumentValue​(java.lang.Object inArgumentValue,
                                                   java.lang.String outArgumentFieldName,
                                                   java.lang.Class type)
        PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The inArgumentValue is the value of the argument to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
      • addUnamedOutputArgument

        public void addUnamedOutputArgument​(java.lang.String argumentFieldName)
        PUBLIC: Define the field/argument name to be substitute for the index output argument. This method is used if the procedure is not named and the order is explicit, names must be added in the correct order. The argumentFieldName is the field or argument name to be used to pass to the procedure. The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
      • addUnamedOutputArgument

        public void addUnamedOutputArgument​(java.lang.String argumentFieldName,
                                            java.lang.Class type)
        PUBLIC: Define the field/argument name to be substitute for the index output argument. This method is used if the procedure is not named and the order is explicit, names must be added in the correct order. The argumentFieldName is the field or argument name to be used to pass to the procedure. The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
      • addUnamedOutputArgument

        public void addUnamedOutputArgument​(java.lang.String argumentFieldName,
                                            int type)
        PUBLIC: Define the field/argument name to be substitute for the index output argument. This method is used if the procedure is not named and the order is explicit, names must be added in the correct order. The argumentFieldName is the field or argument name to be used to pass to the procedure. The type is the JDBC type code, this is dependent on the type returned from the procedure.
      • addUnamedOutputArgument

        public void addUnamedOutputArgument​(java.lang.String argumentFieldName,
                                            int type,
                                            java.lang.String typeName)
        PUBLIC: Define the field/argument name to be substitute for the index output argument. This method is used if the procedure is not named and the order is explicit, names must be added in the correct order. The argumentFieldName is the field or argument name to be used to pass to the procedure. The type is the JDBC type code, this is dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY or STRUCT types.
      • addUnamedOutputArgument

        public void addUnamedOutputArgument​(java.lang.String argumentFieldName,
                                            int jdbcType,
                                            java.lang.String typeName,
                                            java.lang.Class javaType)
        PUBLIC: Define the field/argument name to be substitute for the index output argument. This method is used if the procedure is not named and the order is explicit, names must be added in the correct order. The argumentFieldName is the field or argument name to be used is the result of the output row. The jdbcType is the JDBC type code, this dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY and STRUCT types. The javaType is the java class to return instead of the ARRAY and STRUCT types if a conversion is possible.
      • addUnamedOutputArgument

        public void addUnamedOutputArgument​(java.lang.String argumentFieldName,
                                            int jdbcType,
                                            java.lang.String typeName,
                                            java.lang.Class javaType,
                                            org.eclipse.persistence.internal.helper.DatabaseField nestedType)
        PUBLIC: Define the field/argument name to be substitute for the index output argument. This method is used if the procedure is not named and the order is explicit, names must be added in the correct order. The argumentFieldName is the field or argument name to be used is the result of the output row. The jdbcType is the JDBC type code, this dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY and STRUCT types. The javaType is the java class to return instead of the ARRAY and STRUCT types if a conversion is possible. The nestedType is a DatabaseField with type information set to match the VARRAYs object types
      • getCallHeader

        public java.lang.String getCallHeader​(org.eclipse.persistence.internal.databaseaccess.DatabasePlatform platform)
        INTERNAL: Return call header for the call string.
      • getFirstParameterIndexForCallString

        public int getFirstParameterIndexForCallString()
        INTERNAL: Return the first index of parameter to be placed inside brackets in the call string
      • getProcedureArgumentNames

        public java.util.List<java.lang.String> getProcedureArgumentNames()
        INTERNAL: The if the names are provide the order is not required to match the call def. This is lazy initialized to conserve space on calls that have no parameters. If the argument name is null, then it is a positional parameter.
      • getProcedureName

        public java.lang.String getProcedureName()
        PUBLIC: Return the name of the store procedure on the database.
      • isCallableStatementRequired

        protected boolean isCallableStatementRequired()
        Callable statements are used for StoredProcedures that have argument names (named parameters)
        Overrides:
        isCallableStatementRequired in class org.eclipse.persistence.internal.databaseaccess.DatabaseCall
      • isStoredProcedureCall

        public boolean isStoredProcedureCall()
        Overrides:
        isStoredProcedureCall in class org.eclipse.persistence.internal.databaseaccess.DatasourceCall
      • prepareInternal

        protected void prepareInternal​(org.eclipse.persistence.internal.sessions.AbstractSession session)
        INTERNAL: Called by prepare method only.
        Overrides:
        prepareInternal in class org.eclipse.persistence.internal.databaseaccess.DatabaseCall
      • prepareStatement

        public java.sql.Statement prepareStatement​(org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor accessor,
                                                   org.eclipse.persistence.internal.sessions.AbstractRecord translationRow,
                                                   org.eclipse.persistence.internal.sessions.AbstractSession session)
                                            throws java.sql.SQLException
        INTERNAL: Prepare the JDBC statement, this may be parameterize or a call statement. If caching statements this must check for the pre-prepared statement and re-bind to it.
        Overrides:
        prepareStatement in class org.eclipse.persistence.internal.databaseaccess.DatabaseCall
        Throws:
        java.sql.SQLException
      • setProcedureArgumentNames

        public void setProcedureArgumentNames​(java.util.List<java.lang.String> procedureArgumentNames)
        INTERNAL: The if the names are provide the order is not required to match the call def. This is lazy initialized to conserve space on calls that have no parameters.
      • setProcedureName

        public void setProcedureName​(java.lang.String procedureName)
        PUBLIC: (REQUIRED) Set the name of the store procedure on the database.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class org.eclipse.persistence.internal.databaseaccess.DatabaseCall
      • addNamedCursorOutputArgument

        public void addNamedCursorOutputArgument​(java.lang.String argumentName)
        ADVANCED: Add the cursor output parameter to the procedure. This is used for procedures that have multiple cursor output parameters. If the procedure has a single cursor output parameter, then useNamedCursorOutputAsResultSet() should be used.
      • addUnnamedCursorOutputArgument

        public void addUnnamedCursorOutputArgument​(java.lang.String outputRowFieldName)
        ADVANCED: Add the cursor output parameter to the procedure. This is used for procedures that have multiple cursor output parameters. If the procedure has a single cursor output parameter, then useNamedCursorOutputAsResultSet() should be used.
      • useCursorOutputResultSet

        protected void useCursorOutputResultSet​(java.lang.String argumentName,
                                                java.lang.String outputFieldName)
        INTERNAL: Add the unnamed output cursor to return the result.
      • useNamedCursorOutputAsResultSet

        public void useNamedCursorOutputAsResultSet​(java.lang.String argumentName)
        PUBLIC: Used for Oracle result sets through procedures. This can only be used if the arguments are not named but ordered.
      • useUnnamedCursorOutputAsResultSet

        public void useUnnamedCursorOutputAsResultSet()
        PUBLIC: Used for Oracle result sets through procedures. This can only be used if the arguments are not named but ordered.
        Overrides:
        useUnnamedCursorOutputAsResultSet in class org.eclipse.persistence.internal.databaseaccess.DatabaseCall
      • useUnnamedCursorOutputAsResultSet

        public void useUnnamedCursorOutputAsResultSet​(int position)
        PUBLIC: Used for Oracle result sets through procedures. This can only be used if the arguments are not named but ordered.
      • setHasMultipleResultSets

        public void setHasMultipleResultSets​(boolean hasMultipleResultSets)
        PUBLIC: Set if the call returns multiple result sets. Some databases support having stored procedures that return multiple result set. This can be used by data queries, if an object query is used, all of the result sets must return the required data to build the resulting class.
        Overrides:
        setHasMultipleResultSets in class org.eclipse.persistence.internal.databaseaccess.DatabaseCall
      • setReturnsResultSet

        public void setReturnsResultSet​(boolean returnsResultSet)
        PUBLIC: Some database support stored procedures returning result sets. This default to true in the call has no output parameters, otherwise false. If the call returns a result set, and has output parameters, this can be set to true. If the call is used in a modify query, it is assumed to not have a result set, result sets can only be used by read queries. For Oracle a cursored output parameter can be used instead of a result set.
        Overrides:
        setReturnsResultSet in class org.eclipse.persistence.internal.databaseaccess.DatabaseCall
      • addOptionalArgument

        public void addOptionalArgument​(java.lang.String argument)
        PUBLIC: Add the optional argument. This will be ignored if null and defaulted by the database.
      • hasOptionalArguments

        public boolean hasOptionalArguments()
        INTERNAL: Return if there are any optional arguments.
      • getOptionalArguments

        public java.util.List<org.eclipse.persistence.internal.helper.DatabaseField> getOptionalArguments()
        INTERNAL: Return the list of optional arguments. These will be ignored if null and defaulted by the database.
      • setOptionalArguments

        public void setOptionalArguments​(java.util.List<org.eclipse.persistence.internal.helper.DatabaseField> optionalArguments)
        INTERNAL: Set the list of optional arguments. These will be ignored if null and defaulted by the database.
      • getOutputParameterValue

        public java.lang.Object getOutputParameterValue​(java.sql.CallableStatement statement,
                                                        int index,
                                                        org.eclipse.persistence.internal.sessions.AbstractSession session)
                                                 throws java.sql.SQLException
        Overrides:
        getOutputParameterValue in class org.eclipse.persistence.internal.databaseaccess.DatabaseCall
        Throws:
        java.sql.SQLException
      • bindParameter

        public void bindParameter​(java.io.Writer writer,
                                  java.lang.Object parameter)
        Bind the parameter. Binding is determined by the call and second the platform.
        Overrides:
        bindParameter in class org.eclipse.persistence.internal.databaseaccess.DatabaseCall
      • getLogString

        public java.lang.String getLogString​(org.eclipse.persistence.internal.databaseaccess.Accessor accessor)
        Return the SQL string for logging purposes.
        Specified by:
        getLogString in interface Call
        Overrides:
        getLogString in class org.eclipse.persistence.internal.databaseaccess.DatabaseCall