From 91f37e756aabd52ae24fb7b2cadf425045748774 Mon Sep 17 00:00:00 2001 From: dafang <1073816412@qq.com> Date: Mon, 8 Dec 2025 15:58:29 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix(product):=20=E4=BF=AE=E5=A4=8D@Select?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2JSON=E5=AD=97=E6=AE=B5=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Select注解不会应用autoResultMap,需手动指定@Results和typeHandler: - ProductSpuMapper: sliderPicUrls字段添加JacksonTypeHandler - ProductSkuMapper: properties字段添加JacksonTypeHandler --- .../product/dal/mysql/sku/ProductSkuMapper.java | 12 +++++++++--- .../product/dal/mysql/spu/ProductSpuMapper.java | 12 +++++++++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/yudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/sku/ProductSkuMapper.java b/yudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/sku/ProductSkuMapper.java index da920a5b82..21f58f75e4 100755 --- a/yudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/sku/ProductSkuMapper.java +++ b/yudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/sku/ProductSkuMapper.java @@ -5,9 +5,8 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Select; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import org.apache.ibatis.annotations.*; import java.util.Collection; import java.util.List; @@ -15,7 +14,14 @@ import java.util.List; @Mapper public interface ProductSkuMapper extends BaseMapperX { + /** + * 查询商品 SKU(包含已删除) + * 注意:使用 @Results 手动指定 typeHandler,否则 @Select 不会应用 autoResultMap,properties 字段无法解析 JSON + */ @Select("SELECT * FROM product_sku WHERE id = #{id}") + @Results({ + @Result(column = "properties", property = "properties", typeHandler = JacksonTypeHandler.class), + }) ProductSkuDO selectByIdIncludeDeleted(@Param("id") Long id); default List selectListBySpuId(Long spuId) { diff --git a/yudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/spu/ProductSpuMapper.java b/yudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/spu/ProductSpuMapper.java index fc00ae78d4..ee9d3339bf 100755 --- a/yudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/spu/ProductSpuMapper.java +++ b/yudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/spu/ProductSpuMapper.java @@ -10,9 +10,8 @@ import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; import cn.iocoder.yudao.module.product.enums.ProductConstants; import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Select; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import org.apache.ibatis.annotations.*; import java.util.Objects; import java.util.Set; @@ -20,7 +19,14 @@ import java.util.Set; @Mapper public interface ProductSpuMapper extends BaseMapperX { + /** + * 查询商品 SPU(包含已删除) + * 注意:使用 @Results 手动指定 typeHandler,否则 @Select 不会应用 autoResultMap,sliderPicUrls 字段无法解析 JSON + */ @Select("SELECT * FROM product_spu WHERE id = #{id}") + @Results({ + @Result(column = "slider_pic_urls", property = "sliderPicUrls", typeHandler = JacksonTypeHandler.class), + }) ProductSpuDO selectByIdIncludeDeleted(@Param("id") Long id); /** From 0a7fa72b3a202f61989450a05968735deb190b68 Mon Sep 17 00:00:00 2001 From: dafang <1073816412@qq.com> Date: Mon, 8 Dec 2025 16:04:43 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix(product):=20=E4=BF=AE=E5=A4=8D@Select?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2JSON=E5=AD=97=E6=AE=B5=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yudao/module/product/dal/mysql/spu/ProductSpuMapper.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/yudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/spu/ProductSpuMapper.java b/yudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/spu/ProductSpuMapper.java index ee9d3339bf..24ebd6864e 100755 --- a/yudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/spu/ProductSpuMapper.java +++ b/yudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/spu/ProductSpuMapper.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.type.IntegerListTypeHandler; import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuPageReqVO; import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuPageReqVO; import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; @@ -21,11 +22,12 @@ public interface ProductSpuMapper extends BaseMapperX { /** * 查询商品 SPU(包含已删除) - * 注意:使用 @Results 手动指定 typeHandler,否则 @Select 不会应用 autoResultMap,sliderPicUrls 字段无法解析 JSON + * 注意:使用 @Results 手动指定 typeHandler,否则 @Select 不会应用 autoResultMap,sliderPicUrls,deliveryTypes 字段无法解析 JSON */ @Select("SELECT * FROM product_spu WHERE id = #{id}") @Results({ @Result(column = "slider_pic_urls", property = "sliderPicUrls", typeHandler = JacksonTypeHandler.class), + @Result(column = "delivery_types", property = "deliveryTypes", typeHandler = IntegerListTypeHandler.class), }) ProductSpuDO selectByIdIncludeDeleted(@Param("id") Long id);