Merge branch '3.4.x'

Closes gh-45220
This commit is contained in:
Stéphane Nicoll 2025-04-17 10:18:44 +02:00
commit e8ddb93d7b
2 changed files with 11 additions and 3 deletions

View File

@ -26,8 +26,8 @@ import org.jooq.SQLDialect;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator;
import org.springframework.jdbc.support.SQLExceptionSubclassTranslator;
import org.springframework.jdbc.support.SQLExceptionTranslator;
import org.springframework.jdbc.support.SQLStateSQLExceptionTranslator;
import org.springframework.util.Assert;
/**
@ -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 SQLExceptionSubclassTranslator();
}
private String getSpringDbName(SQLDialect dialect) {

View File

@ -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;
@ -93,12 +94,19 @@ class DefaultExceptionTranslatorExecuteListenerTests {
static Object[] exceptionTranslatesSqlExceptions() {
return new Object[] { new Object[] { SQLDialect.DERBY, sqlException("42802") },
new Object[] { SQLDialect.DERBY, new SQLSyntaxErrorException() },
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, sqlException("21000") },
new Object[] { SQLDialect.SQLITE, new SQLSyntaxErrorException() } };
}
private static SQLException sqlException(String sqlState) {