Class Expectation.OutParameter

java.lang.Object
org.hibernate.jdbc.Expectation.OutParameter
All Implemented Interfaces:
Expectation
Enclosing interface:
Expectation

public static class Expectation.OutParameter extends Object implements Expectation
Essentially identical to Expectation.RowCount except that the row count is obtained via an output parameter of a stored procedure.

Statement batching is disabled when OutParameter is used.

Since:
6.5
  • Constructor Details

    • OutParameter

      public OutParameter()
  • Method Details

    • verifyOutcome

      public final void verifyOutcome(int rowCount, PreparedStatement statement, int batchPosition, String sql)
      Description copied from interface: Expectation
      Perform verification of the outcome of the JDBC operation based on the type of expectation defined, after execution of the given PreparedStatement. When a SQL statement is executed via PreparedStatement.executeUpdate(), verifyOutcome() is called exactly once. When Statement.executeBatch() is used to execute a batch update, this method is called once for each element of the batch.
      • The argument to rowCount is usually the number of table rows affected by execution of the SQL statement via executeUpdate(). However, in the case where executeBatch() is used to execute a batch update, it might be Statement.EXECUTE_FAILED or Statement.SUCCESS_NO_INFO.
      • The argument to batchPosition is negative unless executeBatch() is used to execute a batch update, in which case it is the position within the batch of the row count being verified.
      Specified by:
      verifyOutcome in interface Expectation
      Parameters:
      rowCount - The RDBMS reported "number of rows affected"
      statement - The statement representing the operation
      batchPosition - The position in the batch (if batching), or -1 if not part of a batch
      sql - The SQL backing the prepared statement, for error reporting and logging purposes
      See Also:
    • validate

      public void validate(boolean callable) throws MappingException
      Description copied from interface: Expectation
      Check that this implementation is compatible with the kind of PreparedStatement it will be called with. Implementors should throw a MappingException if the configuration is not supported. This operation is called when Hibernate starts up, so that incompatibilities are detected and reported as early as possible.
      Specified by:
      validate in interface Expectation
      Parameters:
      callable - true if this Expectation will be called with a CallableStatement.
      Throws:
      MappingException
    • getNumberOfParametersUsed

      public int getNumberOfParametersUsed()
      Description copied from interface: Expectation
      The number of JDBC parameters this expectation uses. For example, Expectation.OutParameter requires a single OUT parameter for reading back the number of affected rows.
      Specified by:
      getNumberOfParametersUsed in interface Expectation
    • prepare

      public int prepare(PreparedStatement statement) throws SQLException, HibernateException
      Description copied from interface: Expectation
      Perform any special statement preparation, for example, registration of OUT parameters.
      Specified by:
      prepare in interface Expectation
      Parameters:
      statement - The statement to be prepared
      Returns:
      The number of bind positions consumed (if any)
      Throws:
      SQLException - Exception from the JDBC driver
      HibernateException - Problem performing preparation.
      See Also:
    • canBeBatched

      public boolean canBeBatched()
      Description copied from interface: Expectation
      Is it acceptable to combine this expectation with JDBC statement batching? If this method returns false, the use of batch updates is disabled.
      Specified by:
      canBeBatched in interface Expectation
      Returns:
      True if batching can be combined with this expectation; false otherwise.
      See Also:
    • parameterIndex

      protected int parameterIndex()
    • expectedRowCount

      protected int expectedRowCount()