diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/DefaultExceptionTranslatorExecuteListener.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/DefaultExceptionTranslatorExecuteListener.java index d4681ff420..c4442b56dd 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/DefaultExceptionTranslatorExecuteListener.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/DefaultExceptionTranslatorExecuteListener.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -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 SQLErrorCodeSQLExceptionTranslator(); + : new SQLExceptionSubclassTranslator(); } private String getSpringDbName(SQLDialect dialect) { diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jooq/DefaultExceptionTranslatorExecuteListenerTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jooq/DefaultExceptionTranslatorExecuteListenerTests.java index 60c2113eca..d3ebb228e4 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jooq/DefaultExceptionTranslatorExecuteListenerTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jooq/DefaultExceptionTranslatorExecuteListenerTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -94,6 +94,7 @@ 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) }, @@ -104,9 +105,8 @@ class DefaultExceptionTranslatorExecuteListenerTests { new Object[] { SQLDialect.MYSQL, new SQLSyntaxErrorException() }, new Object[] { SQLDialect.POSTGRES, sqlException("03000") }, new Object[] { SQLDialect.POSTGRES, new SQLSyntaxErrorException() }, - new Object[] { SQLDialect.SQLITE, new SQLSyntaxErrorException() }, new Object[] { SQLDialect.SQLITE, sqlException("21000") }, - }; + new Object[] { SQLDialect.SQLITE, new SQLSyntaxErrorException() } }; } private static SQLException sqlException(String sqlState) {