From 8b469710ce097accbefb7ff5e4951ffab4cc0424 Mon Sep 17 00:00:00 2001 From: hewencai <2357300448@qq.com> Date: Mon, 29 Dec 2025 09:53:00 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8Dseata2.4=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E4=B8=8B=E8=BE=BE=E6=A2=A6=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E5=9B=9E=E6=BB=9A=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B0=83=E8=AF=95=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../seata/rm/datasource/DataCompareUtils.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/zt-framework/zt-spring-boot-starter-seata-dm/src/main/java/org/apache/seata/rm/datasource/DataCompareUtils.java b/zt-framework/zt-spring-boot-starter-seata-dm/src/main/java/org/apache/seata/rm/datasource/DataCompareUtils.java index 2d596096..1b91c4ab 100644 --- a/zt-framework/zt-spring-boot-starter-seata-dm/src/main/java/org/apache/seata/rm/datasource/DataCompareUtils.java +++ b/zt-framework/zt-spring-boot-starter-seata-dm/src/main/java/org/apache/seata/rm/datasource/DataCompareUtils.java @@ -26,6 +26,8 @@ import org.apache.seata.rm.datasource.undo.AbstractUndoLogManager; import org.apache.seata.rm.datasource.undo.parser.FastjsonUndoLogParser; import org.apache.seata.rm.datasource.undo.parser.JacksonUndoLogParser; import org.apache.seata.sqlparser.struct.TableMeta; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.lang.reflect.Method; import java.math.BigDecimal; @@ -66,6 +68,18 @@ import java.util.stream.Collectors; */ public class DataCompareUtils { + private static final Logger LOGGER = LoggerFactory.getLogger(DataCompareUtils.class); + + /** + * 标识补丁类是否已加载 + */ + private static final boolean PATCHED; + + static { + PATCHED = true; + LOGGER.info("[zt-spring-boot-starter-seata-dm] DataCompareUtils 补丁类已加载,用于解决达梦数据库 DmdbTimestamp 时区问题"); + } + private DataCompareUtils() {} /** @@ -102,6 +116,10 @@ public class DataCompareUtils { Instant i0 = toInstant(v0); Instant i1 = toInstant(v1); boolean equals = Objects.equals(i0, i1); + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("[zt-seata-dm-patch] DmdbTimestamp 比较: field={}, i0={}, i1={}, equals={}", + f0.getName(), i0, i1, equals); + } return equals ? Result.ok() : Result.buildWithParams(