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).
| Modifier and Type | Class and Description |
|---|---|
| public class | CannotAcquireLockException
Exception thrown on failure to acquire a lock during an update, for example during a "select for update" statement. |
| public class | CannotSerializeTransactionException
Deprecated
since 6.0.3. as of 6.0.3, in favor of
Exception thrown on failure to complete a transaction in serialized mode
due to update conflicts.
PessimisticLockingFailureException/CannotAcquireLockException
|
| public class | CleanupFailureDataAccessException
Deprecated
since 6.0.3. as of 6.0.3 since it is not in use within core JDBC/ORM support
Exception thrown when we couldn't clean up after a data access operation,
but the actual operation went OK.
|
| public class | ConcurrencyFailureException
Exception thrown on various data access concurrency failures. |
| public abstract class | DataAccessException
Root of the hierarchy of data access exceptions discussed in Expert One-On-One J2EE Design and Development. |
| public class | DataAccessResourceFailureException
Data access exception thrown when a resource fails completely: for example, if we can't connect to a database using JDBC. |
| public class | DataIntegrityViolationException
Exception thrown when an attempt to insert or update data results in violation of an integrity constraint. |
| public class | DataRetrievalFailureException
Exception thrown if certain expected data could not be retrieved, e.g. when looking up specific data via a known identifier. |
| public class | DeadlockLoserDataAccessException
Deprecated
since 6.0.3. as of 6.0.3, in favor of
Generic exception thrown when the current process was
a deadlock loser, and its transaction rolled back.
PessimisticLockingFailureException/CannotAcquireLockException
|
| public class | DuplicateKeyException
Exception thrown when an attempt to insert or update data results in violation of a primary key or unique constraint. |
| public class | 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. |
| public class | 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. |
| public class | IncorrectUpdateSemanticsDataAccessException
Data access exception thrown when something unintended appears to have happened with an update, but the transaction hasn't already been rolled back. |
| public class | InvalidDataAccessApiUsageException
Exception thrown on incorrect usage of the API, such as failing to "compile" a query object that needed compilation before execution. |
| public class | InvalidDataAccessResourceUsageException
Root for exceptions thrown when we use a data access resource incorrectly. |
| public abstract class | 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. |
| public class | NonTransientDataAccessResourceException
Data access exception thrown when a resource fails completely and the failure is permanent. |
| public class | OptimisticLockingFailureException
Exception thrown on an optimistic locking violation. |
| public class | PermissionDeniedDataAccessException
Exception thrown when the underlying resource denied a permission to access a specific element, such as a specific database table. |
| public class | PessimisticLockingFailureException
Exception thrown on a pessimistic locking violation. |
| public class | QueryTimeoutException
Exception to be thrown on a query timeout. |
| public class | 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. |
| public abstract class | 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. |
| public class | TransientDataAccessResourceException
Data access exception thrown when a resource fails temporarily and the operation can be retried. |
| public class | 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. |
| public abstract class | 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. |