public class

ChainedPersistenceExceptionTranslator

extends Object
implements PersistenceExceptionTranslator
java.lang.Object
   ↳ org.springframework.dao.support.ChainedPersistenceExceptionTranslator

Class Overview

Implementation of PersistenceExceptionTranslator that supports chaining, allowing the addition of PersistenceExceptionTranslator instances in order. Returns non-null on the first (if any) match.

Summary

Public Constructors
ChainedPersistenceExceptionTranslator()
Public Methods
final void addDelegate(PersistenceExceptionTranslator pet)
Add a PersistenceExceptionTranslator to the chained delegate list.
final PersistenceExceptionTranslator[] getDelegates()
Return all registered PersistenceExceptionTranslator delegates (as array).
DataAccessException translateExceptionIfPossible(RuntimeException ex)
Translate the given runtime exception thrown by a persistence framework to a corresponding exception from Spring's generic DataAccessException hierarchy, if possible.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.springframework.dao.support.PersistenceExceptionTranslator

Public Constructors

public ChainedPersistenceExceptionTranslator ()

Public Methods

public final void addDelegate (PersistenceExceptionTranslator pet)

Add a PersistenceExceptionTranslator to the chained delegate list.

public final PersistenceExceptionTranslator[] getDelegates ()

Return all registered PersistenceExceptionTranslator delegates (as array).

public DataAccessException translateExceptionIfPossible (RuntimeException ex)

Translate the given runtime exception thrown by a persistence framework to a corresponding exception from Spring's generic DataAccessException hierarchy, if possible.

Do not translate exceptions that are not understand by this translator: for example, if coming from another persistence framework, or resulting from user code and unrelated to persistence.

Of particular importance is the correct translation to DataIntegrityViolationException, for example on constraint violation. Implementations may use Spring JDBC's sophisticated exception translation to provide further information in the event of SQLException as a root cause.

Parameters
ex a RuntimeException thrown
Returns
  • the corresponding DataAccessException (or null if the exception could not be translated, as in this case it may result from user code rather than an actual persistence problem)