@NonNullApi @NonNullFields
See: Description
| Exception | Description | 
|---|---|
| CannotAcquireLockException | Exception thrown on failure to acquire a lock during an update,
 for example during a "select for update" statement. | 
| CannotSerializeTransactionException | Exception thrown on failure to complete a transaction in serialized mode
 due to update conflicts. | 
| CleanupFailureDataAccessException | Exception thrown when we couldn't cleanup after a data access operation,
 but the actual operation went OK. | 
| ConcurrencyFailureException | Exception thrown on concurrency failure. | 
| DataAccessException | Root of the hierarchy of data access exceptions discussed in
 Expert One-On-One J2EE Design and Development. | 
| DataAccessResourceFailureException | Data access exception thrown when a resource fails completely:
 for example, if we can't connect to a database using JDBC. | 
| DataIntegrityViolationException | Exception thrown when an attempt to insert or update data
 results in violation of an integrity constraint. | 
| DataRetrievalFailureException | Exception thrown if certain expected data could not be retrieved, e.g. | 
| DeadlockLoserDataAccessException | Generic exception thrown when the current process was
 a deadlock loser, and its transaction rolled back. | 
| DuplicateKeyException | Exception thrown when an attempt to insert or update data
 results in violation of an primary key or unique constraint. | 
| EmptyResultDataAccessException | Data access exception thrown when a result was expected to have at least
 one row (or element) but zero rows (or elements) were actually returned. | 
| IncorrectResultSizeDataAccessException | Data access exception thrown when a result was not of the expected size,
 for example when expecting a single row but getting 0 or more than 1 rows. | 
| IncorrectUpdateSemanticsDataAccessException | Data access exception thrown when something unintended appears to have
 happened with an update, but the transaction hasn't already been rolled back. | 
| InvalidDataAccessApiUsageException | Exception thrown on incorrect usage of the API, such as failing to
 "compile" a query object that needed compilation before execution. | 
| InvalidDataAccessResourceUsageException | Root for exceptions thrown when we use a data access resource incorrectly. | 
| NonTransientDataAccessException | Root of the hierarchy of data access exceptions that are considered non-transient -
 where a retry of the same operation would fail unless the cause of the Exception
 is corrected. | 
| NonTransientDataAccessResourceException | Data access exception thrown when a resource fails completely and the failure is permanent. | 
| OptimisticLockingFailureException | Exception thrown on an optimistic locking violation. | 
| PermissionDeniedDataAccessException | Exception thrown when the underlying resource denied a permission
 to access a specific element, such as a specific database table. | 
| PessimisticLockingFailureException | Exception thrown on a pessimistic locking violation. | 
| QueryTimeoutException | Exception to be thrown on a query timeout. | 
| RecoverableDataAccessException | Data access exception thrown when a previously failed operation might be able
 to succeed if the application performs some recovery steps and retries the entire
 transaction or in the case of a distributed transaction, the transaction branch. | 
| TransientDataAccessException | Root of the hierarchy of data access exceptions that are considered transient -
 where a previously failed operation might be able to succeed when the operation
 is retried without any intervention by application-level functionality. | 
| TransientDataAccessResourceException | Data access exception thrown when a resource fails temporarily
 and the operation can be retried. | 
| TypeMismatchDataAccessException | Exception thrown on mismatch between Java type and database type:
 for example on an attempt to set an object of the wrong type
 in an RDBMS column. | 
| UncategorizedDataAccessException | Normal superclass when we can't distinguish anything more specific
 than "something went wrong with the underlying resource": for example,
 an SQLException from JDBC we can't pinpoint more precisely. | 
All these exceptions are unchecked, meaning that calling code can leave them uncaught and treat all data access exceptions as fatal.
The classes in this package are discussed in Chapter 9 of Expert One-On-One J2EE Design and Development by Rod Johnson (Wrox, 2002).