|
|
|
@ -72,12 +72,12 @@ public abstract class ConnectionFactoryUtils { |
|
|
|
public static final int CONNECTION_SYNCHRONIZATION_ORDER = 1000; |
|
|
|
public static final int CONNECTION_SYNCHRONIZATION_ORDER = 1000; |
|
|
|
|
|
|
|
|
|
|
|
private static final Set<Integer> DUPLICATE_KEY_ERROR_CODES = Set.of( |
|
|
|
private static final Set<Integer> DUPLICATE_KEY_ERROR_CODES = Set.of( |
|
|
|
1, // Oracle
|
|
|
|
1, // Oracle
|
|
|
|
301, // Sap Hana
|
|
|
|
301, // SAP HANA
|
|
|
|
1062, // MySQL/MariaDB
|
|
|
|
1062, // MySQL/MariaDB
|
|
|
|
2601, // MS SQL Server
|
|
|
|
2601, // MS SQL Server
|
|
|
|
2627 // MS SQL Server
|
|
|
|
2627 // MS SQL Server
|
|
|
|
); |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
@ -257,11 +257,13 @@ public abstract class ConnectionFactoryUtils { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Check whether the given SQL state (and the associated error code in case |
|
|
|
* Check whether the given SQL state and the associated error code (in case |
|
|
|
* of a generic SQL state value) indicate a duplicate key exception. See |
|
|
|
* of a generic SQL state value) indicate a duplicate key exception: |
|
|
|
* {@code org.springframework.jdbc.support.SQLStateSQLExceptionTranslator#indicatesDuplicateKey}. |
|
|
|
* either SQL state 23505 as a specific indication, or the generic SQL state |
|
|
|
|
|
|
|
* 23000 with a well-known vendor code. |
|
|
|
* @param sqlState the SQL state value |
|
|
|
* @param sqlState the SQL state value |
|
|
|
* @param errorCode the error code value |
|
|
|
* @param errorCode the error code |
|
|
|
|
|
|
|
* @see org.springframework.jdbc.support.SQLStateSQLExceptionTranslator#indicatesDuplicateKey |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
static boolean indicatesDuplicateKey(@Nullable String sqlState, int errorCode) { |
|
|
|
static boolean indicatesDuplicateKey(@Nullable String sqlState, int errorCode) { |
|
|
|
return ("23505".equals(sqlState) || |
|
|
|
return ("23505".equals(sqlState) || |
|
|
|
|