Class DatabaseCall
- java.lang.Object
-
- org.eclipse.persistence.internal.databaseaccess.DatasourceCall
-
- org.eclipse.persistence.internal.databaseaccess.DatabaseCall
-
- All Implemented Interfaces:
Serializable
,Cloneable
,Call
- Direct Known Subclasses:
SQLCall
,StoredProcedureCall
public abstract class DatabaseCall extends DatasourceCall
INTERNAL: Purpose: Used as an abstraction of a database invocation. A call is an SQL string or procedure call with parameters.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
executeReturnValue
JPA 2.1 NamedStoredProcedureQuery execute API implementation.protected Vector
fields
protected DatabaseField[]
fieldsArray
protected int
firstResult
static DatabaseField
FIRSTRESULT_FIELD
protected boolean
hasAllocatedConnection
Indicates whether the call has allocated connection.protected boolean
hasMultipleResultSets
Support multiple result sets.protected boolean
hasOptimisticLock
protected boolean
ignoreFirstRowSetting
Indicates if the FirstRow value in this call object is to be ignored.protected boolean
ignoreMaxResultsSetting
Indicates if the MaxResults value in this call object is to be ignored.protected boolean
isBatchExecutionSupported
Define if this query is compatible with batch writing.protected boolean
isCallableStatementRequired
protected boolean
isCursorOutputProcedure
Allow for a single cursored output parameter.protected boolean
isFieldMatchingRequired
protected boolean
isMultipleCursorOutputProcedure
Allow for multiple cursored output parameter.protected boolean
isResultSetScrollable
static DatabaseField
MAXROW_FIELD
Following fields are used to bind MaxResults and FirstRow settings into the query instead of using the values stored in the call.protected int
maxRows
protected List<DatabaseField>
outputCursors
Keep a list of the output cursors.protected int
queryTimeout
protected TimeUnit
queryTimeoutUnit
protected ResultSet
result
protected int
resultSetConcurrency
protected int
resultSetFetchSize
protected int
resultSetType
protected boolean
returnMultipleResultSetCollections
Support returning multiple results sets instead of just one list, i.e.protected Boolean
returnsResultSet
protected boolean
shouldBuildOutputRow
protected Boolean
shouldCacheStatement
protected String
sqlString
The SQL string to execute.protected Statement
statement
protected Boolean
usesBinding
-
Fields inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourceCall
CUSTOM_MODIFY, EXECUTE_UPDATE, IN, INLINE, INOUT, isNativeConnectionRequired, isPrepared, LITERAL, MODIFY, NO_RETURN, OUT, OUT_CURSOR, parameters, parameterTypes, query, RETURN_CURSOR, RETURN_MANY_ROWS, RETURN_ONE_ROW, returnType, shouldProcessTokenInQuotes, TRANSLATION
-
-
Constructor Summary
Constructors Constructor Description DatabaseCall()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addContext(DatabaseField field, Object value)
INTERNAL: Add a field - value pair for LOB field into the context.void
appendIn(Object inObject)
INTERNAL:void
appendInOut(Object inValueOrField, DatabaseField outField)
INTERNAL:void
appendInOut(DatabaseField inoutField)
INTERNAL:static void
appendLogParameters(Collection parameters, Accessor accessor, StringWriter writer, AbstractSession session)
Print the parameters to the write for logging purposes.void
appendOut(DatabaseField outField)
INTERNAL:void
appendOutCursor(DatabaseField outField)
INTERNAL:void
appendParameter(Writer writer, Object parameter, AbstractSession session)
Add the parameter.void
bindParameter(Writer writer, Object parameter)
Bind the parameter.DatabaseQueryMechanism
buildNewQueryMechanism(DatabaseQuery query)
Return the appropriate mechanism, with the call added as necessary.AbstractRecord
buildOutputRow(CallableStatement statement, DatabaseAccessor accessor, AbstractSession session)
INTERNAL: Return Record containing output fields and values.DatabaseQueryMechanism
buildQueryMechanism(DatabaseQuery query, DatabaseQueryMechanism mechanism)
Return the appropriate mechanism, with the call added as necessary.protected Object
createInOutParameter(Object inValue, Object outParameter, AbstractSession session)
INTERNAL: Returns INOUT parameter.String
getCallString()
INTERNAL: Return the SQL string for the call.AbstractRecord
getContexts()
INTERNAL: Return the contexts (for LOB)int
getCursorOutIndex()
INTERNAL: Return 1-based index of out cursor parameter, or -1.boolean
getExecuteReturnValue()
After an execute call the return value can be retrieved here.Vector
getFields()
The fields expected by the calls result set.DatabaseField[]
getFieldsArray()
INTERNAL: The array of fields returned by the call.protected DatabaseField
getFieldWithTypeFromDescriptor(DatabaseField outField)
INTERNAL: Unfortunately can't avoid referencing query and descriptor: the call should be performed after the translateCustomSQL (in SQLCall) in the middle of prepare method (no parameter available earlier).int
getFirstResult()
get first resultString
getLogString(Accessor accessor)
Return the SQL string for logging purposes.int
getMaxRows()
get max rows returned from the callList<DatabaseField>
getOutputCursors()
INTERNAL: Return the output cursors for this stored procedure call.Object
getOutputParameterValue(CallableStatement statement, int index, AbstractSession session)
INTERNAL: Get the return object from the statement.Object
getOutputParameterValue(CallableStatement statement, String name, AbstractSession session)
INTERNAL: Get the return object from the statement.Vector
getOutputRowFields()
INTERNAL Returns the fields to be used in output row.String
getQueryString()
INTERNAL: Return the query string (SQL) of the call.int
getQueryTimeout()
Get timeout limit from the callResultSet
getResult()
The result set is stored for the return value of cursor selects.int
getResultSetConcurrency()
int
getResultSetFetchSize()
int
getResultSetType()
boolean
getReturnsResultSet()
ADVANCED: This method returns a value that represents if the customer has set whether or not EclipseLink should expect the stored procedure to returning a JDBC ResultSet.String
getSQLString()
Return the SQL string that will be executed.Statement
getStatement()
The statement is stored for the return value of cursor selects.boolean
hasAllocatedConnection()
INTERNAL:boolean
hasMultipleResultSets()
Return if the call returns multiple result sets.boolean
hasOptimisticLock()
This check is needed only when doing batch writing.boolean
hasOutputCursors()
Return true if there are output cursors on this call.boolean
isBatchExecutionSupported()
INTERNAL: Return if this query is compatible with batch writing.protected boolean
isCallableStatementRequired()
Callable statement is required if there is an output parameter.boolean
isCursorOutputProcedure()
Used for Oracle result sets through procedures.boolean
isCursorReturned()
The return type is one of, NoReturn, ReturnOneRow or ReturnManyRows.protected boolean
isDynamicCall(AbstractSession session)
Return if the call is dynamic SQL call.boolean
isFieldMatchingRequired()
Return if field matching is required.boolean
isFinished()
Return whether all the results of the call have been returned.boolean
isLOBLocatorNeeded()
INTERNAL: Return if the locator is required for the LOB (BLOB and CLOB) writing.boolean
isMultipleCursorOutputProcedure()
Used for Oracle result sets through procedures.boolean
isNonCursorOutputProcedure()
Return true for procedures with any output (or in/out) parameters and no cursorsboolean
isResultSetScrollable()
boolean
isUsesBindingSet()
INTERNAL Indicates whether usesBinding has been set.void
matchFieldOrder(ResultSet resultSet, DatabaseAccessor accessor, AbstractSession session)
Allow for the field order to be matched if required.void
prepare(AbstractSession session)
INTERNAL: Allow pre-printing of the SQL string for fully bound calls, to save from reprinting.protected void
prepareInternal(AbstractSession session)
INTERNAL: Called by prepare method only.protected void
prepareInternalParameters(AbstractSession session)
INTERNAL: Called by prepareInternal method only.Statement
prepareStatement(DatabaseAccessor accessor, AbstractRecord translationRow, AbstractSession session)
INTERNAL: Prepare the JDBC statement, this may be parameterize or a call statement.boolean
returnMultipleResultSetCollections()
Return true if the multiple results 'lists' should be returned.void
setBatchExecutionSupported(boolean isBatchExecutionSupported)
INTERNAL: Set if this query is compatible with batch writing.void
setContexts(AbstractRecord contexts)
INTERNAL: Set the contexts (for LOB)void
setExecuteReturnValue(boolean value)
An execute return value will be set here after the call.void
setFields(Vector fields)
The fields expected by the calls result set.void
setFirstResult(int firstResult)
The firstResult set on the result setvoid
setHasAllocatedConnection(boolean hasAllocatedConnection)
INTERNAL:void
setHasMultipleResultSets(boolean hasMultipleResultSets)
Set if the call returns multiple result sets.void
setHasOptimisticLock(boolean hasOptimisticLock)
This check is needed only when doing batch writing and we hit on optimistic locking.void
setIgnoreFirstRowSetting(boolean ignoreFirstRowSetting)
INTERNAL: Sets the ignoreFirstRowSetting flag.void
setIgnoreMaxResultsSetting(boolean ignoreMaxResultsSetting)
INTERNAL: Sets the ignoreMaxResultsSetting flag.protected void
setIsCallableStatementRequired(boolean isCallableStatementRequired)
Callable statement is required if there is an output parameter.void
setIsCursorOutputProcedure(boolean isCursorOutputProcedure)
Used for Oracle result sets through procedures.void
setIsFieldMatchingRequired(boolean isFieldMatchingRequired)
Field matching is required for custom SQL statements where the result set field order is not known.void
setIsMultipleCursorOutputProcedure(boolean isMultipleCursorOutputProcedure)
Used for Oracle result sets through procedures.void
setIsResultSetScrollable(boolean isResultSetScrollable)
void
setMaxRows(int maxRows)
set query max returned row size to the JDBC Statementvoid
setQueryString(String queryString)
INTERNAL: Set the query string (SQL) of the call.void
setQueryTimeout(int queryTimeout)
set query timeout limit to the JDBC Statementvoid
setQueryTimeoutUnit(TimeUnit queryTimeoutUnit)
set query timeout limit unit to the JDBC Statementvoid
setResult(ResultSet result)
The result set is stored for the return value of cursor selects.void
setResultSetConcurrency(int resultSetConcurrency)
void
setResultSetFetchSize(int resultSetFetchSize)
void
setResultSetType(int resultSetType)
void
setReturnMultipleResultSetCollections(boolean returnMultipleResultSetCollections)
Set if the call returns multiple result sets.void
setReturnsResultSet(boolean returnsResultSet)
PUBLIC: Use this method to tell EclipseLink that the stored procedure will be returning a JDBC ResultSetprotected void
setShouldBuildOutputRow(boolean shouldBuildOutputRow)
INTERNAL: Set whether the call has to build output rowvoid
setShouldCacheStatement(boolean shouldCacheStatement)
Bound calls can use prepared statement caching.protected void
setSQLStringInternal(String sqlString)
INTERNAL: Set the SQL string.void
setStatement(Statement statement)
The statement is stored for the return value of cursor selects.void
setUsesBinding(boolean usesBinding)
The call may specify that its parameters should be bound.boolean
shouldBuildOutputRow()
Set whether the call has to build output rowboolean
shouldCacheStatement(DatabasePlatform databasePlatform)
Bound calls can use prepared statement caching.boolean
shouldCacheStatement(AbstractSession session)
Bound calls can use prepared statement caching.boolean
shouldIgnoreFirstRowSetting()
INTERNAL: Returns the ignoreFirstRowSetting flag.boolean
shouldIgnoreMaxResultsSetting()
INTERNAL: Returns the ignoreMaxResultsSetting flag.String
toString()
INTERNAL: Print the SQL string.void
translate(AbstractRecord translationRow, AbstractRecord modifyRow, AbstractSession session)
INTERNAL: Allow the call to translate from the translation for predefined calls.void
translateQueryStringForParameterizedIN(AbstractRecord translationRow, AbstractRecord modifyRow, AbstractSession session)
INTERNAL: Translate only IN() parameter values (List parameters).boolean
usesBinding(DatabasePlatform databasePlatform)
The call may specify that its parameters should be bound.boolean
usesBinding(AbstractSession session)
The call may specify that its parameters should be bound.void
useUnnamedCursorOutputAsResultSet()
PUBLIC: Used for Oracle result sets through procedures.-
Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourceCall
appendIn, appendInOut, appendLiteral, appendModify, appendOut, appendTranslation, areManyRowsReturned, argumentMarker, clone, createField, getParameters, getParameterTypes, getQuery, getReturnType, getValueForInOutParameter, getValueForInParameter, hasParameters, isEISInteraction, isExecuteUpdate, isJPQLCall, isNativeConnectionRequired, isNothingReturned, isOneRowReturned, isOutputParameterType, isPrepared, isQueryStringCall, isReturnSet, isSQLCall, isStoredFunctionCall, isStoredPLSQLFunctionCall, isStoredPLSQLProcedureCall, isStoredProcedureCall, returnCursor, returnManyRows, returnNothing, returnOneRow, setExecuteUpdate, setIsNativeConnectionRequired, setIsPrepared, setParameters, setParameterTypes, setQuery, setReturnType, translateCustomQuery, translatePureSQLCustomQuery, translateQueryString, whitespace
-
-
-
-
Field Detail
-
executeReturnValue
protected boolean executeReturnValue
JPA 2.1 NamedStoredProcedureQuery execute API implementation.
-
MAXROW_FIELD
public static final DatabaseField MAXROW_FIELD
Following fields are used to bind MaxResults and FirstRow settings into the query instead of using the values stored in the call.
-
FIRSTRESULT_FIELD
public static final DatabaseField FIRSTRESULT_FIELD
-
ignoreFirstRowSetting
protected boolean ignoreFirstRowSetting
Indicates if the FirstRow value in this call object is to be ignored. If true, it should mean it has been built into the SQL statement directly ex: using Oracle Rownum support
-
ignoreMaxResultsSetting
protected boolean ignoreMaxResultsSetting
Indicates if the MaxResults value in this call object is to be ignored. If true, it should mean it has been built into the SQL statement directly ex: using Oracle Rownum support
-
statement
protected transient Statement statement
-
result
protected transient ResultSet result
-
usesBinding
protected Boolean usesBinding
-
shouldCacheStatement
protected Boolean shouldCacheStatement
-
fields
protected transient Vector fields
-
fieldsArray
protected transient DatabaseField[] fieldsArray
-
isFieldMatchingRequired
protected boolean isFieldMatchingRequired
-
hasOptimisticLock
protected boolean hasOptimisticLock
-
isResultSetScrollable
protected boolean isResultSetScrollable
-
resultSetFetchSize
protected int resultSetFetchSize
-
resultSetType
protected int resultSetType
-
resultSetConcurrency
protected int resultSetConcurrency
-
queryTimeout
protected int queryTimeout
-
queryTimeoutUnit
protected TimeUnit queryTimeoutUnit
-
maxRows
protected int maxRows
-
firstResult
protected int firstResult
-
isCursorOutputProcedure
protected boolean isCursorOutputProcedure
Allow for a single cursored output parameter.
-
isMultipleCursorOutputProcedure
protected boolean isMultipleCursorOutputProcedure
Allow for multiple cursored output parameter.
-
returnsResultSet
protected Boolean returnsResultSet
-
shouldBuildOutputRow
protected boolean shouldBuildOutputRow
-
isCallableStatementRequired
protected boolean isCallableStatementRequired
-
hasMultipleResultSets
protected boolean hasMultipleResultSets
Support multiple result sets.
-
returnMultipleResultSetCollections
protected boolean returnMultipleResultSetCollections
Support returning multiple results sets instead of just one list, i.e. support multiple results set mappings.
-
sqlString
protected String sqlString
The SQL string to execute.
-
hasAllocatedConnection
protected boolean hasAllocatedConnection
Indicates whether the call has allocated connection. May be set if the call has not finished
-
isBatchExecutionSupported
protected boolean isBatchExecutionSupported
Define if this query is compatible with batch writing. Some queries, such as DDL are not compatible.
-
outputCursors
protected List<DatabaseField> outputCursors
Keep a list of the output cursors.
-
-
Method Detail
-
hasMultipleResultSets
public boolean hasMultipleResultSets()
Return if the call returns multiple result sets.
-
setHasMultipleResultSets
public void setHasMultipleResultSets(boolean hasMultipleResultSets)
Set if the call returns multiple result sets.
-
appendIn
public void appendIn(Object inObject)
INTERNAL:
-
appendInOut
public void appendInOut(DatabaseField inoutField)
INTERNAL:
-
appendInOut
public void appendInOut(Object inValueOrField, DatabaseField outField)
INTERNAL:
-
appendOut
public void appendOut(DatabaseField outField)
INTERNAL:
-
appendOutCursor
public void appendOutCursor(DatabaseField outField)
INTERNAL:
-
appendParameter
public void appendParameter(Writer writer, Object parameter, AbstractSession session)
Add the parameter. If using binding bind the parameter otherwise let the platform print it. The platform may also decide to bind the value.- Overrides:
appendParameter
in classDatasourceCall
-
bindParameter
public void bindParameter(Writer writer, Object parameter)
Bind the parameter. Binding is determined by the call and second the platform.
-
buildNewQueryMechanism
public DatabaseQueryMechanism buildNewQueryMechanism(DatabaseQuery query)
Return the appropriate mechanism, with the call added as necessary.- Specified by:
buildNewQueryMechanism
in interfaceCall
- Overrides:
buildNewQueryMechanism
in classDatasourceCall
-
buildOutputRow
public AbstractRecord buildOutputRow(CallableStatement statement, DatabaseAccessor accessor, AbstractSession session) throws SQLException
INTERNAL: Return Record containing output fields and values. Called only if shouldBuildOutputRow method returns true.- Throws:
SQLException
-
buildQueryMechanism
public DatabaseQueryMechanism buildQueryMechanism(DatabaseQuery query, DatabaseQueryMechanism mechanism)
Return the appropriate mechanism, with the call added as necessary.- Specified by:
buildQueryMechanism
in interfaceCall
- Overrides:
buildQueryMechanism
in classDatasourceCall
-
createInOutParameter
protected Object createInOutParameter(Object inValue, Object outParameter, AbstractSession session)
INTERNAL: Returns INOUT parameter. The first parameter is value to pass in, the second DatabaseField for out.- Overrides:
createInOutParameter
in classDatasourceCall
-
getCallString
public String getCallString()
INTERNAL: Return the SQL string for the call.
-
getFields
public Vector getFields()
The fields expected by the calls result set. null means that the fields are unknown and should be built from the result set.
-
getFieldsArray
public DatabaseField[] getFieldsArray()
INTERNAL: The array of fields returned by the call.
-
getFieldWithTypeFromDescriptor
protected DatabaseField getFieldWithTypeFromDescriptor(DatabaseField outField)
INTERNAL: Unfortunately can't avoid referencing query and descriptor: the call should be performed after the translateCustomSQL (in SQLCall) in the middle of prepare method (no parameter available earlier).
-
getCursorOutIndex
public int getCursorOutIndex()
INTERNAL: Return 1-based index of out cursor parameter, or -1.
-
getExecuteReturnValue
public boolean getExecuteReturnValue()
After an execute call the return value can be retrieved here.
-
getFirstResult
public int getFirstResult()
get first result
-
getLogString
public String getLogString(Accessor accessor)
Return the SQL string for logging purposes.- Specified by:
getLogString
in interfaceCall
- Specified by:
getLogString
in classDatasourceCall
-
appendLogParameters
public static void appendLogParameters(Collection parameters, Accessor accessor, StringWriter writer, AbstractSession session)
Print the parameters to the write for logging purposes.
-
getMaxRows
public int getMaxRows()
get max rows returned from the call
-
getOutputRowFields
public Vector getOutputRowFields()
INTERNAL Returns the fields to be used in output row.
-
getOutputCursors
public List<DatabaseField> getOutputCursors()
INTERNAL: Return the output cursors for this stored procedure call.
-
getQueryString
public String getQueryString()
INTERNAL: Return the query string (SQL) of the call.- Overrides:
getQueryString
in classDatasourceCall
-
getQueryTimeout
public int getQueryTimeout()
Get timeout limit from the call
-
getResult
public ResultSet getResult()
The result set is stored for the return value of cursor selects.
-
getReturnsResultSet
public boolean getReturnsResultSet()
ADVANCED: This method returns a value that represents if the customer has set whether or not EclipseLink should expect the stored procedure to returning a JDBC ResultSet. The result of the method corresponds to false, true.
-
getResultSetConcurrency
public int getResultSetConcurrency()
-
getResultSetFetchSize
public int getResultSetFetchSize()
-
getResultSetType
public int getResultSetType()
-
getSQLString
public String getSQLString()
Return the SQL string that will be executed.
-
getStatement
public Statement getStatement()
The statement is stored for the return value of cursor selects.
-
hasOptimisticLock
public boolean hasOptimisticLock()
This check is needed only when doing batch writing.
-
hasOutputCursors
public boolean hasOutputCursors()
Return true if there are output cursors on this call.
-
isCallableStatementRequired
protected boolean isCallableStatementRequired()
Callable statement is required if there is an output parameter.
-
isDynamicCall
protected boolean isDynamicCall(AbstractSession session)
Return if the call is dynamic SQL call. This means the call has no parameters, is not using binding, is not a stored procedure (CallableStatement), or cursor. This means that a Statement, not a PreparedStatement will be used for the call.
-
isCursorOutputProcedure
public boolean isCursorOutputProcedure()
Used for Oracle result sets through procedures.
-
isCursorReturned
public boolean isCursorReturned()
The return type is one of, NoReturn, ReturnOneRow or ReturnManyRows.- Overrides:
isCursorReturned
in classDatasourceCall
-
isFieldMatchingRequired
public boolean isFieldMatchingRequired()
Return if field matching is required. Field matching is required for custom SQL statements where the result set field order is not known.
-
isFinished
public boolean isFinished()
Return whether all the results of the call have been returned.- Specified by:
isFinished
in interfaceCall
- Overrides:
isFinished
in classDatasourceCall
-
isMultipleCursorOutputProcedure
public boolean isMultipleCursorOutputProcedure()
Used for Oracle result sets through procedures.
-
isNonCursorOutputProcedure
public boolean isNonCursorOutputProcedure()
Return true for procedures with any output (or in/out) parameters and no cursors
-
isResultSetScrollable
public boolean isResultSetScrollable()
-
matchFieldOrder
public void matchFieldOrder(ResultSet resultSet, DatabaseAccessor accessor, AbstractSession session)
Allow for the field order to be matched if required. This is required for custom SQL.
-
prepare
public void prepare(AbstractSession session)
INTERNAL: Allow pre-printing of the SQL string for fully bound calls, to save from reprinting. Should be called before translation.- Overrides:
prepare
in classDatasourceCall
-
prepareInternal
protected void prepareInternal(AbstractSession session)
INTERNAL: Called by prepare method only. May be overridden.
-
prepareInternalParameters
protected void prepareInternalParameters(AbstractSession session)
INTERNAL: Called by prepareInternal method only. May be overridden.
-
prepareStatement
public Statement prepareStatement(DatabaseAccessor accessor, AbstractRecord translationRow, AbstractSession session) throws 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.- Throws:
SQLException
-
returnMultipleResultSetCollections
public boolean returnMultipleResultSetCollections()
Return true if the multiple results 'lists' should be returned.
-
setFields
public void setFields(Vector fields)
The fields expected by the calls result set.
-
setFirstResult
public void setFirstResult(int firstResult)
The firstResult set on the result set
-
setHasOptimisticLock
public void setHasOptimisticLock(boolean hasOptimisticLock)
This check is needed only when doing batch writing and we hit on optimistic locking.
-
setIgnoreFirstRowSetting
public void setIgnoreFirstRowSetting(boolean ignoreFirstRowSetting)
INTERNAL: Sets the ignoreFirstRowSetting flag. If true, FirstResult option are assumed built into the SQL string and ignored if set in the call, and instead are added as query arguments. Default is false.
-
setIgnoreMaxResultsSetting
public void setIgnoreMaxResultsSetting(boolean ignoreMaxResultsSetting)
INTERNAL: Sets the ignoreMaxResultsSetting flag. If true, MaxRows option are assumed built into the SQL string and ignored if set in the call, and instead are added as query arguments. Default is false.
-
setIsCallableStatementRequired
protected void setIsCallableStatementRequired(boolean isCallableStatementRequired)
Callable statement is required if there is an output parameter.
-
setIsCursorOutputProcedure
public void setIsCursorOutputProcedure(boolean isCursorOutputProcedure)
Used for Oracle result sets through procedures.
-
setIsFieldMatchingRequired
public void setIsFieldMatchingRequired(boolean isFieldMatchingRequired)
Field matching is required for custom SQL statements where the result set field order is not known.
-
setIsMultipleCursorOutputProcedure
public void setIsMultipleCursorOutputProcedure(boolean isMultipleCursorOutputProcedure)
Used for Oracle result sets through procedures.
-
setIsResultSetScrollable
public void setIsResultSetScrollable(boolean isResultSetScrollable)
-
setMaxRows
public void setMaxRows(int maxRows)
set query max returned row size to the JDBC Statement
-
setQueryString
public void setQueryString(String queryString)
INTERNAL: Set the query string (SQL) of the call.- Overrides:
setQueryString
in classDatasourceCall
-
setQueryTimeout
public void setQueryTimeout(int queryTimeout)
set query timeout limit to the JDBC Statement
-
setQueryTimeoutUnit
public void setQueryTimeoutUnit(TimeUnit queryTimeoutUnit)
set query timeout limit unit to the JDBC Statement
-
setResult
public void setResult(ResultSet result)
The result set is stored for the return value of cursor selects.
-
setResultSetConcurrency
public void setResultSetConcurrency(int resultSetConcurrency)
-
setSQLStringInternal
protected void setSQLStringInternal(String sqlString)
INTERNAL: Set the SQL string.
-
setResultSetFetchSize
public void setResultSetFetchSize(int resultSetFetchSize)
-
setResultSetType
public void setResultSetType(int resultSetType)
-
setReturnsResultSet
public void setReturnsResultSet(boolean returnsResultSet)
PUBLIC: Use this method to tell EclipseLink that the stored procedure will be returning a JDBC ResultSet
-
setReturnMultipleResultSetCollections
public void setReturnMultipleResultSetCollections(boolean returnMultipleResultSetCollections)
Set if the call returns multiple result sets.
-
setShouldBuildOutputRow
protected void setShouldBuildOutputRow(boolean shouldBuildOutputRow)
INTERNAL: Set whether the call has to build output row
-
setShouldCacheStatement
public void setShouldCacheStatement(boolean shouldCacheStatement)
Bound calls can use prepared statement caching.
-
setStatement
public void setStatement(Statement statement)
The statement is stored for the return value of cursor selects.
-
setUsesBinding
public void setUsesBinding(boolean usesBinding)
The call may specify that its parameters should be bound.
-
shouldBuildOutputRow
public boolean shouldBuildOutputRow()
Set whether the call has to build output row
-
shouldCacheStatement
public boolean shouldCacheStatement(AbstractSession session)
Bound calls can use prepared statement caching.
-
shouldCacheStatement
public boolean shouldCacheStatement(DatabasePlatform databasePlatform)
Bound calls can use prepared statement caching.
-
shouldIgnoreFirstRowSetting
public boolean shouldIgnoreFirstRowSetting()
INTERNAL: Returns the ignoreFirstRowSetting flag. If true, FirstResult option is assumed built into the SQL string and ignored if set in the call.
-
shouldIgnoreMaxResultsSetting
public boolean shouldIgnoreMaxResultsSetting()
INTERNAL: Returns the ignoreMaxResultsSetting flag. If true, MaxRows option is assumed built into the SQL string and ignored if set in the call.
-
toString
public String toString()
INTERNAL: Print the SQL string.
-
translate
public void translate(AbstractRecord translationRow, AbstractRecord modifyRow, AbstractSession session)
INTERNAL: Allow the call to translate from the translation for predefined calls.- Overrides:
translate
in classDatasourceCall
-
translateQueryStringForParameterizedIN
public void translateQueryStringForParameterizedIN(AbstractRecord translationRow, AbstractRecord modifyRow, AbstractSession session)
INTERNAL: Translate only IN() parameter values (List parameters).
-
usesBinding
public boolean usesBinding(AbstractSession session)
The call may specify that its parameters should be bound.
-
usesBinding
public boolean usesBinding(DatabasePlatform databasePlatform)
The call may specify that its parameters should be bound.
-
isUsesBindingSet
public boolean isUsesBindingSet()
INTERNAL Indicates whether usesBinding has been set.
-
isLOBLocatorNeeded
public boolean isLOBLocatorNeeded()
INTERNAL: Return if the locator is required for the LOB (BLOB and CLOB) writing.
-
addContext
public void addContext(DatabaseField field, Object value)
INTERNAL: Add a field - value pair for LOB field into the context.
-
getContexts
public AbstractRecord getContexts()
INTERNAL: Return the contexts (for LOB)
-
setContexts
public void setContexts(AbstractRecord contexts)
INTERNAL: Set the contexts (for LOB)
-
setExecuteReturnValue
public void setExecuteReturnValue(boolean value)
An execute return value will be set here after the call.
-
useUnnamedCursorOutputAsResultSet
public void useUnnamedCursorOutputAsResultSet()
PUBLIC: Used for Oracle result sets through procedures. The first OUT parameter is set as a cursor output.
-
isBatchExecutionSupported
public boolean isBatchExecutionSupported()
INTERNAL: Return if this query is compatible with batch writing. Some queries, such as DDL are not compatible.
-
setBatchExecutionSupported
public void setBatchExecutionSupported(boolean isBatchExecutionSupported)
INTERNAL: Set if this query is compatible with batch writing. Some queries, such as DDL are not compatible.
-
hasAllocatedConnection
public boolean hasAllocatedConnection()
INTERNAL:
-
setHasAllocatedConnection
public void setHasAllocatedConnection(boolean hasAllocatedConnection)
INTERNAL:
-
getOutputParameterValue
public Object getOutputParameterValue(CallableStatement statement, int index, AbstractSession session) throws SQLException
INTERNAL: Get the return object from the statement. Use the parameter index to determine what return object to get.- Parameters:
statement
- SQL/JDBC statement to call stored procedure/functionindex
- 0-based index in the argument listsession
- Active database session (in connected state).- Returns:
- Throws:
SQLException
-
getOutputParameterValue
public Object getOutputParameterValue(CallableStatement statement, String name, AbstractSession session) throws SQLException
INTERNAL: Get the return object from the statement. Use the parameter name to determine what return object to get.- Parameters:
statement
- SQL/JDBC statement to call stored procedure/functionname
- parameter namesession
- Active database session (in connected state).- Returns:
- Throws:
SQLException
-
-