From 60279fca4c8e7d5250b88aa19b3d0875e7cabecb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Fri, 6 Feb 2026 00:49:00 +0800 Subject: [PATCH] =?UTF-8?q?fix(cache):=20=E8=A7=A3=E5=86=B3=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E4=B8=ADJSON=20null=E5=80=BC=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E7=9A=84=E7=A9=BA=E6=8C=87=E9=92=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加对历史缓存中JSON "null" 字符串的兼容处理 - 当缓存解析出null值时清理缓存并回源数据库 - 在CmsWebsiteServiceImpl中增加缓存清理逻辑 - 在ShopWebsiteServiceImpl中统一缓存异常处理机制 - 添加单元测试验证JSON null值场景的正确回退行为 --- .../service/impl/CmsWebsiteServiceImpl.java | 11 +++- .../service/impl/ShopWebsiteServiceImpl.java | 3 + .../impl/CmsWebsiteServiceImplCacheTest.java | 66 +++++++++++++++++++ 3 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 src/test/java/com/gxwebsoft/cms/service/impl/CmsWebsiteServiceImplCacheTest.java diff --git a/src/main/java/com/gxwebsoft/cms/service/impl/CmsWebsiteServiceImpl.java b/src/main/java/com/gxwebsoft/cms/service/impl/CmsWebsiteServiceImpl.java index 0bc0566..348d3e5 100644 --- a/src/main/java/com/gxwebsoft/cms/service/impl/CmsWebsiteServiceImpl.java +++ b/src/main/java/com/gxwebsoft/cms/service/impl/CmsWebsiteServiceImpl.java @@ -337,9 +337,16 @@ public class CmsWebsiteServiceImpl extends ServiceImpl c = target.getClass(); + while (c != null) { + try { + Field f = c.getDeclaredField(fieldName); + f.setAccessible(true); + f.set(target, value); + return; + } catch (NoSuchFieldException ignored) { + c = c.getSuperclass(); + } + } + throw new NoSuchFieldException(fieldName); + } +} +