From 973a9d1591fc8128790a590ae13f535aa07c3a26 Mon Sep 17 00:00:00 2001
From: wujia <qimujia@163.com>
Date: Thu, 17 Aug 2023 14:20:04 +0800
Subject: [PATCH] 查询数据行数时才将BigDecimal转为Integer,查询列表数据时不转换

---
 gjjs-bd-mybatis-support/src/main/java/com/brilliance/mda/support/mybatis/MyBatisDaoSession.java | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/gjjs-bd-mybatis-support/src/main/java/com/brilliance/mda/support/mybatis/MyBatisDaoSession.java b/gjjs-bd-mybatis-support/src/main/java/com/brilliance/mda/support/mybatis/MyBatisDaoSession.java
index 74c343b..58a3418 100644
--- a/gjjs-bd-mybatis-support/src/main/java/com/brilliance/mda/support/mybatis/MyBatisDaoSession.java
+++ b/gjjs-bd-mybatis-support/src/main/java/com/brilliance/mda/support/mybatis/MyBatisDaoSession.java
@@ -474,9 +474,13 @@ public class MyBatisDaoSession extends AbstractDaoSession implements IDaoSession
             for (int i = 0; i < result.size(); i++) {
                 Map<String, Object> map1 = result.get(i);
                 Set<Map.Entry<String, Object>> entries = map1.entrySet();
-                for (Map.Entry<String, Object> entry : entries) {
-                    if (entry.getValue() instanceof BigDecimal) {
-                        entry.setValue(((BigDecimal) entry.getValue()).intValue());
+                //结果集只有1列数据,切查询语句中包含COUNT 函数名,则判断SQL为查询数据行数
+                //将结果集值类型从BigDecimal 转换为Integer
+                if (entries.size() == 1 && sql.toUpperCase().contains("COUNT")){
+                    for (Map.Entry<String, Object> entry : entries) {
+                        if (entry.getValue() instanceof BigDecimal) {
+                            entry.setValue(((BigDecimal) entry.getValue()).intValue());
+                        }
                     }
                 }
             }
--
libgit2 0.26.0