Use proper default exception translator if no dbName is available
This commit updates jOOQ's DefaultExceptionTranslatorExecuteListener to fallback on Spring Framework's default if no dbName is available. See gh-44954 Signed-off-by: Dennis Melzer <dennis.melzer@de.bosch.com>
This commit is contained in:
parent
b218e9d3db
commit
6801b1a365
|
@ -114,7 +114,7 @@ final class DefaultExceptionTranslatorExecuteListener implements ExceptionTransl
|
|||
private SQLExceptionTranslator apply(SQLDialect dialect) {
|
||||
String dbName = getSpringDbName(dialect);
|
||||
return (dbName != null) ? new SQLErrorCodeSQLExceptionTranslator(dbName)
|
||||
: new SQLStateSQLExceptionTranslator();
|
||||
: new SQLErrorCodeSQLExceptionTranslator();
|
||||
}
|
||||
|
||||
private String getSpringDbName(SQLDialect dialect) {
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
package org.springframework.boot.autoconfigure.jooq;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.sql.SQLSyntaxErrorException;
|
||||
import java.util.function.Function;
|
||||
|
||||
import org.jooq.Configuration;
|
||||
|
@ -94,11 +95,18 @@ class DefaultExceptionTranslatorExecuteListenerTests {
|
|||
static Object[] exceptionTranslatesSqlExceptions() {
|
||||
return new Object[] { new Object[] { SQLDialect.DERBY, sqlException("42802") },
|
||||
new Object[] { SQLDialect.H2, sqlException(42000) },
|
||||
new Object[] { SQLDialect.H2, new SQLSyntaxErrorException() },
|
||||
new Object[] { SQLDialect.HSQLDB, sqlException(-22) },
|
||||
new Object[] { SQLDialect.HSQLDB, new SQLSyntaxErrorException() },
|
||||
new Object[] { SQLDialect.MARIADB, sqlException(1054) },
|
||||
new Object[] { SQLDialect.MARIADB, new SQLSyntaxErrorException() },
|
||||
new Object[] { SQLDialect.MYSQL, sqlException(1054) },
|
||||
new Object[] { SQLDialect.MYSQL, new SQLSyntaxErrorException() },
|
||||
new Object[] { SQLDialect.POSTGRES, sqlException("03000") },
|
||||
new Object[] { SQLDialect.SQLITE, sqlException("21000") } };
|
||||
new Object[] { SQLDialect.POSTGRES, new SQLSyntaxErrorException() },
|
||||
new Object[] { SQLDialect.SQLITE, new SQLSyntaxErrorException() },
|
||||
new Object[] { SQLDialect.SQLITE, sqlException("21000") },
|
||||
};
|
||||
}
|
||||
|
||||
private static SQLException sqlException(String sqlState) {
|
||||
|
|
Loading…
Reference in New Issue