public abstract class AbstractFallbackSQLExceptionTranslator extends java.lang.Object implements SQLExceptionTranslator
SQLExceptionTranslator implementations that allow for
fallback to some other SQLExceptionTranslator.| Modifier and Type | Field and Description |
|---|---|
protected Log |
logger
Logger available to subclasses
|
| Constructor and Description |
|---|
AbstractFallbackSQLExceptionTranslator() |
| Modifier and Type | Method and Description |
|---|---|
protected java.lang.String |
buildMessage(java.lang.String task,
java.lang.String sql,
java.sql.SQLException ex)
Build a message
String for the given SQLException. |
protected abstract DataAccessException |
doTranslate(java.lang.String task,
java.lang.String sql,
java.sql.SQLException ex)
Template method for actually translating the given exception.
|
SQLExceptionTranslator |
getFallbackTranslator()
Return the fallback exception translator, if any.
|
void |
setFallbackTranslator(SQLExceptionTranslator fallback)
Override the default SQL state fallback translator
(typically a
SQLStateSQLExceptionTranslator). |
DataAccessException |
translate(java.lang.String task,
java.lang.String sql,
java.sql.SQLException ex)
Pre-checks the arguments, calls
doTranslate(java.lang.String, java.lang.String, java.sql.SQLException), and invokes the
fallback translator if necessary. |
protected final Log logger
public AbstractFallbackSQLExceptionTranslator()
public void setFallbackTranslator(SQLExceptionTranslator fallback)
SQLStateSQLExceptionTranslator).public SQLExceptionTranslator getFallbackTranslator()
public DataAccessException translate(java.lang.String task, java.lang.String sql, java.sql.SQLException ex)
doTranslate(java.lang.String, java.lang.String, java.sql.SQLException), and invokes the
fallback translator if necessary.translate in interface SQLExceptionTranslatortask - readable text describing the task being attemptedsql - the SQL query or update that caused the problem (if known)ex - the offending SQLExceptionSQLException,
or null if no translation could be applied
(in a custom translator; the default translators always throw an
UncategorizedSQLException in such a case)NestedRuntimeException.getRootCause()protected abstract DataAccessException doTranslate(java.lang.String task, java.lang.String sql, java.sql.SQLException ex)
The passed-in arguments will have been pre-checked. Furthermore, this method
is allowed to return null to indicate that no exception match has
been found and that fallback translation should kick in.
task - readable text describing the task being attemptedsql - the SQL query or update that caused the problem (if known)ex - the offending SQLExceptionSQLException;
or null if no exception match foundprotected java.lang.String buildMessage(java.lang.String task,
java.lang.String sql,
java.sql.SQLException ex)
String for the given SQLException.
To be called by translator subclasses when creating an instance of a generic
DataAccessException class.
task - readable text describing the task being attemptedsql - the SQL statement that caused the problemex - the offending SQLExceptionString to use