首先检查是否存在完成定制转换的子类实现。通常SQLErrorCodeSQLExceptionTranslator 这个类可以作为一个具体类使用,不需要进行定制,那么这个规则将不适用。
接着将SQLException 的error code 与错误代码集中的error code 进行匹配。默认情况下错误代码集将从SQLErrorCodesFactory 取得。错误代码集来自classpath 下的sql-error-codes.xml 文件,它们将与数据库metadata 信息中的database name 进行映射。
使用fallback 翻译器。SQLStateSQLExceptionTranslator 类是缺省的fallback 翻译器。