Package org.apache.cayenne.access.jdbc

# Class ProcedureAction

java.lang.Object
org.apache.cayenne.access.jdbc.BaseSQLAction
org.apache.cayenne.access.jdbc.ProcedureAction

All Implemented Interfaces:
  `SQLAction`

Direct Known Subclasses:
  `SQLServerProcedureAction`

public class ProcedureAction extends BaseSQLAction
A SQLAction that runs a stored procedure. Note that ProcedureAction has internal state and is not thread-safe.

Since:
  1.2

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected int`
  `processedResultSets`
  Holds a number of ResultSets processed by the action.
  `protected ProcedureQuery`
  `query`

  ### Fields inherited from class org.apache.cayenne.access.jdbc.BaseSQLAction

  `dataNode`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ProcedureAction(ProcedureQuery query, DataNode dataNode)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected ProcedureTranslator`
  `createTranslator(Connection connection)`
  Returns the ProcedureTranslator to use for this ProcedureAction.
  `protected RowDescriptor`
  `describeResultSet(ResultSet resultSet, int setIndex)`
  Creates a RowDescriptor for result set.
  `protected Procedure`
  `getProcedure()`
  Returns stored procedure for an internal query.
  `protected void`
  `initStatement(CallableStatement statement)`
  Initializes statement with query parameters
  `void`
  `performAction(Connection connection, OperationObserver observer)`
  Executes a query using a strategy defined by the implementation.
  `protected void`
  `readProcedureOutParameters(CallableStatement statement, OperationObserver delegate)`
  Helper method that reads OUT parameters of a CallableStatement.

  ### Methods inherited from class org.apache.cayenne.access.jdbc.BaseSQLAction

  `getInMemoryOffset, readResultSet`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### query

    protected ProcedureQuery query

  - ### processedResultSets

    protected int processedResultSets
    Holds a number of ResultSets processed by the action. This value is reset to zero on every "performAction" call.

- ## Constructor Details

  - ### ProcedureAction

    public ProcedureAction(ProcedureQuery query, DataNode dataNode)
    Since:
      4.0

- ## Method Details

  - ### performAction

    public void performAction(Connection connection, OperationObserver observer) throws SQLException, Exception
    Description copied from interface: `SQLAction`
    Executes a query using a strategy defined by the implementation.
    Throws:
      `SQLException`
      `Exception`

  - ### createTranslator

    protected ProcedureTranslator createTranslator(Connection connection)
    Returns the ProcedureTranslator to use for this ProcedureAction.
    Parameters:
      `connection` - JDBC connection

  - ### describeResultSet

    protected RowDescriptor describeResultSet(ResultSet resultSet, int setIndex) throws SQLException
    Creates a RowDescriptor for result set.
    Parameters:
      `resultSet` - JDBC ResultSet
      `setIndex` - a zero-based index of the ResultSet in the query results.
    Throws:
      `SQLException`

  - ### getProcedure

    protected Procedure getProcedure()
    Returns stored procedure for an internal query.

  - ### readProcedureOutParameters

    protected void readProcedureOutParameters(CallableStatement statement, OperationObserver delegate) throws SQLException, Exception
    Helper method that reads OUT parameters of a CallableStatement.
    Throws:
      `SQLException`
      `Exception`

  - ### initStatement

    protected void initStatement(CallableStatement statement) throws Exception
    Initializes statement with query parameters
    Throws:
      `Exception`