org.springframework.jdbc

## Class JdbcUpdateAffectedIncorrectNumberOfRowsException

- java.lang.Object
- - java.lang.Throwable
  - - java.lang.Exception
    - - java.lang.RuntimeException
      - - org.springframework.core.NestedRuntimeException
        - - org.springframework.dao.DataAccessException
          - - org.springframework.dao.NonTransientDataAccessException
            - - org.springframework.dao.InvalidDataAccessResourceUsageException
              - - org.springframework.dao.IncorrectUpdateSemanticsDataAccessException
                - - org.springframework.jdbc.JdbcUpdateAffectedIncorrectNumberOfRowsException

- All Implemented Interfaces:
    Serializable

      public class JdbcUpdateAffectedIncorrectNumberOfRowsException
      extends IncorrectUpdateSemanticsDataAccessException

  Exception thrown when a JDBC update affects an unexpected number of rows. Typically, we expect an update to affect a single row, meaning it is an error if it affects multiple rows.
  Author:
    Rod Johnson, Juergen Hoeller
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `JdbcUpdateAffectedIncorrectNumberOfRowsException(String sql, int expected, int actual)` Constructor for JdbcUpdateAffectedIncorrectNumberOfRowsException.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getActualRowsAffected()` Return the number of rows that have actually been affected.
    `int` | `getExpectedRowsAffected()` Return the number of rows that should have been affected.
    `boolean` | `wasDataUpdated()` Return whether data was updated.

    - ### Methods inherited from class org.springframework.core.NestedRuntimeException

      `contains, getMessage, getMostSpecificCause, getRootCause`

    - ### Methods inherited from class java.lang.Throwable

      `addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString`

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

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

- - ### Constructor Detail

    - #### JdbcUpdateAffectedIncorrectNumberOfRowsException

          public JdbcUpdateAffectedIncorrectNumberOfRowsException(String sql,
                                                                  int expected,
                                                                  int actual)

      Constructor for JdbcUpdateAffectedIncorrectNumberOfRowsException.
      Parameters:
        `sql` - the SQL we were trying to execute
        `expected` - the expected number of rows affected
        `actual` - the actual number of rows affected

  - ### Method Detail

    - #### getExpectedRowsAffected

          public int getExpectedRowsAffected()

      Return the number of rows that should have been affected.

    - #### getActualRowsAffected

          public int getActualRowsAffected()

      Return the number of rows that have actually been affected.

    - #### wasDataUpdated

          public boolean wasDataUpdated()

      Description copied from class: `IncorrectUpdateSemanticsDataAccessException`
      Return whether data was updated. If this method returns `false`, there is nothing to roll back.

      The default implementation always returns `true`. This can be overridden in subclasses.

      Overrides:
        `wasDataUpdated` in class `IncorrectUpdateSemanticsDataAccessException`