diff --git a/changes/1.5.0.md b/changes/1.5.0.md
index 2c26f97f473f43a075053e171a3f85f634bcfd1f..978f1b5e9667c407a4ced514323bfc6e6c855983 100644
--- a/changes/1.5.0.md
+++ b/changes/1.5.0.md
@@ -60,6 +60,7 @@ Seata 是一款开源的分布式事务解决方案,提供高性能和简单
   - [[#3420](https://github.com/seata/seata/pull/3420)] 优化枚举类并添加单元测试
   - [[#3436](https://github.com/seata/seata/pull/3436)] 优化SQLType类中的错别字
   - [[#3439](https://github.com/seata/seata/pull/3439)] 调整springApplicationContextProvider的顺序以使得他可以在xml的bean之前被调用
+  - [[#3466](https://github.com/seata/seata/pull/3466)] 优化ExecuteTemplateXA类中判断XA不是最终状态的比较方式
   
 
   ### test
diff --git a/changes/en-us/1.5.0.md b/changes/en-us/1.5.0.md
index d6f4f6cf6e70e1bc50b41d73cfbc48fe471183aa..0e599d001c753eff32a31ab25d319f593a753e4a 100644
--- a/changes/en-us/1.5.0.md
+++ b/changes/en-us/1.5.0.md
@@ -59,6 +59,7 @@
   - [[#3420](https://github.com/seata/seata/pull/3420)] optimize enumerated classes and add unit tests	
   - [[#3436](https://github.com/seata/seata/pull/3436)] optimize typo in SQLType class 	
   - [[#3439](https://github.com/seata/seata/pull/3439)] adjust the order of springApplicationContextProvider
+  - [[#3466](https://github.com/seata/seata/pull/3466)] optimize the comparison in the ExecuteTemplateXa class to determine that XA is not the final state
 
 
   ### test	
diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/MultiExecutor.java b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/MultiExecutor.java
index 228c4dc1f2f76fe1a242fe4d712c3ef800342df9..52c0290ab2a883f1cc7fb63200d4d82e152a053e 100644
--- a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/MultiExecutor.java
+++ b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/MultiExecutor.java
@@ -51,7 +51,7 @@ public class MultiExecutor<T, S extends Statement> extends AbstractDMLBaseExecut
      *
      * @param statementProxy    the statement proxy
      * @param statementCallback the statement callback
-     * @param sqlRecognizer     the sql recognizer
+     * @param sqlRecognizers    the sql recognizers
      */
     public MultiExecutor(StatementProxy<S> statementProxy, StatementCallback<T, S> statementCallback, List<SQLRecognizer> sqlRecognizers) {
         super(statementProxy, statementCallback, sqlRecognizers);
diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/xa/ExecuteTemplateXA.java b/rm-datasource/src/main/java/io/seata/rm/datasource/xa/ExecuteTemplateXA.java
index c54f391bd0b396314c2b2e7ac3ffd8a17801cc62..8936347d62647a5440be2b82dfa4b072f41d6866 100644
--- a/rm-datasource/src/main/java/io/seata/rm/datasource/xa/ExecuteTemplateXA.java
+++ b/rm-datasource/src/main/java/io/seata/rm/datasource/xa/ExecuteTemplateXA.java
@@ -76,7 +76,7 @@ public class ExecuteTemplateXA {
                         "Failed to commit xa branch of " + connectionProxyXA.xid + ") since " + ex.getMessage(),
                         ex);
                     // XA End & Rollback
-                    if (!(ex instanceof SQLException) || AbstractConnectionProxyXA.SQLSTATE_XA_NOT_END != ((SQLException) ex).getSQLState()) {
+                    if (!(ex instanceof SQLException) || !AbstractConnectionProxyXA.SQLSTATE_XA_NOT_END.equalsIgnoreCase(((SQLException) ex).getSQLState())) {
                         try {
                             connectionProxyXA.rollback();
                         } catch (SQLException sqle) {