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
-
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) Override the default SQL state fallback translator (typically aSQLStateSQLExceptionTranslator).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
Override the default SQL state fallback translator (typically aSQLStateSQLExceptionTranslator). -
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
-