Package org.springframework.jdbc.support
Class AbstractFallbackSQLExceptionTranslator
java.lang.Object
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator
- All Implemented Interfaces:
 SQLExceptionTranslator
- Direct Known Subclasses:
 SQLErrorCodeSQLExceptionTranslator,SQLExceptionSubclassTranslator,SQLStateSQLExceptionTranslator
public abstract class AbstractFallbackSQLExceptionTranslator
extends Object
implements SQLExceptionTranslator
Base class for 
SQLExceptionTranslator implementations that allow for
 fallback to some other SQLExceptionTranslator.- Since:
 - 2.5.6
 - Author:
 - Juergen Hoeller
 - See Also:
 
- 
Field Summary
Fields - 
Constructor Summary
Constructors - 
Method Summary
Modifier and TypeMethodDescriptionprotected StringbuildMessage(String task, String sql, SQLException ex) Build a messageStringfor the givenSQLException.protected abstract DataAccessExceptiondoTranslate(String task, String sql, SQLException ex) Template method for actually translating the given exception.Return the fallback exception translator, if any.voidsetFallbackTranslator(SQLExceptionTranslator fallback) Set the fallback translator to use when this translator cannot find a specific match itself.translate(String task, String sql, SQLException ex) Pre-checks the arguments, callsdoTranslate(java.lang.String, java.lang.String, java.sql.SQLException), and invokes thefallback translatorif necessary. 
- 
Field Details
- 
logger
Logger available to subclasses. 
 - 
 - 
Constructor Details
- 
AbstractFallbackSQLExceptionTranslator
public AbstractFallbackSQLExceptionTranslator() 
 - 
 - 
Method Details
- 
setFallbackTranslator
Set the fallback translator to use when this translator cannot find a specific match itself. - 
getFallbackTranslator
Return the fallback exception translator, if any. - 
translate
Pre-checks the arguments, callsdoTranslate(java.lang.String, java.lang.String, java.sql.SQLException), and invokes thefallback translatorif necessary.- Specified by:
 translatein interfaceSQLExceptionTranslator- Parameters:
 task- readable text describing the task being attemptedsql- the SQL query or update that caused the problem (if known)ex- the offendingSQLException- Returns:
 - the DataAccessException wrapping the 
SQLException, ornullif no specific translation could be applied - See Also:
 
 - 
doTranslate
@Nullable protected abstract DataAccessException doTranslate(String task, @Nullable String sql, SQLException ex) Template method for actually translating the given exception.The passed-in arguments will have been pre-checked. Furthermore, this method is allowed to return
nullto indicate that no exception match has been found and that fallback translation should kick in.- Parameters:
 task- readable text describing the task being attemptedsql- the SQL query or update that caused the problem (if known)ex- the offendingSQLException- Returns:
 - the DataAccessException, wrapping the 
SQLException; ornullif no exception match found 
 - 
buildMessage
Build a messageStringfor the givenSQLException.To be called by translator subclasses when creating an instance of a generic
DataAccessExceptionclass.- Parameters:
 task- readable text describing the task being attemptedsql- the SQL statement that caused the problemex- the offendingSQLException- Returns:
 - the message 
Stringto use 
 
 -