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's 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

Methods
`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` - SQL we were tring 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's nothing to roll back.

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

Overrides:
  `wasDataUpdated` in class `IncorrectUpdateSemanticsDataAccessException`