mirror of
				https://github.com/YunaiV/ruoyi-vue-pro.git
				synced 2025-10-31 18:49:06 +08:00 
			
		
		
		
	fix:【framework 框架】JacksonTypeHandler 导致 String 处理问题
This commit is contained in:
		| @ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.util.json.JsonUtils; | |||||||
| import cn.iocoder.yudao.framework.mybatis.core.handler.DefaultDBFieldHandler; | import cn.iocoder.yudao.framework.mybatis.core.handler.DefaultDBFieldHandler; | ||||||
| import com.baomidou.mybatisplus.annotation.DbType; | import com.baomidou.mybatisplus.annotation.DbType; | ||||||
| import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; | import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; | ||||||
|  | import com.baomidou.mybatisplus.core.handlers.IJsonTypeHandler; | ||||||
| import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; | import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; | ||||||
| import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator; | import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator; | ||||||
| import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; | import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; | ||||||
| @ -80,8 +81,8 @@ public class YudaoMybatisAutoConfiguration { | |||||||
|         throw new IllegalArgumentException(StrUtil.format("DbType{} 找不到合适的 IKeyGenerator 实现类", dbType)); |         throw new IllegalArgumentException(StrUtil.format("DbType{} 找不到合适的 IKeyGenerator 实现类", dbType)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Bean |     @Bean // 特殊:返回结果使用 Object 而不用 JacksonTypeHandler 的原因,避免因为 JacksonTypeHandler 被 mybatis 全局使用! | ||||||
|     public JacksonTypeHandler jacksonTypeHandler(List<ObjectMapper> objectMappers) { |     public Object jacksonTypeHandler(List<ObjectMapper> objectMappers) { | ||||||
|         // 特殊:设置 JacksonTypeHandler 的 ObjectMapper! |         // 特殊:设置 JacksonTypeHandler 的 ObjectMapper! | ||||||
|         ObjectMapper objectMapper = CollUtil.getFirst(objectMappers); |         ObjectMapper objectMapper = CollUtil.getFirst(objectMappers); | ||||||
|         if (objectMapper == null) { |         if (objectMapper == null) { | ||||||
|  | |||||||
| @ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableLogic; | |||||||
| import com.fasterxml.jackson.annotation.JsonIgnoreProperties; | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; | ||||||
| import com.fhs.core.trans.vo.TransPojo; | import com.fhs.core.trans.vo.TransPojo; | ||||||
| import lombok.Data; | import lombok.Data; | ||||||
|  | import org.apache.ibatis.type.JdbcType; | ||||||
|  |  | ||||||
| import java.io.Serializable; | import java.io.Serializable; | ||||||
| import java.time.LocalDateTime; | import java.time.LocalDateTime; | ||||||
| @ -37,14 +38,14 @@ public abstract class BaseDO implements Serializable, TransPojo { | |||||||
|      * |      * | ||||||
|      * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。 |      * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。 | ||||||
|      */ |      */ | ||||||
|     @TableField(fill = FieldFill.INSERT) |     @TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.VARCHAR) | ||||||
|     private String creator; |     private String creator; | ||||||
|     /** |     /** | ||||||
|      * 更新者,目前使用 SysUser 的 id 编号 |      * 更新者,目前使用 SysUser 的 id 编号 | ||||||
|      * |      * | ||||||
|      * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。 |      * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。 | ||||||
|      */ |      */ | ||||||
|     @TableField(fill = FieldFill.INSERT_UPDATE) |     @TableField(fill = FieldFill.INSERT_UPDATE, jdbcType = JdbcType.VARCHAR) | ||||||
|     private String updater; |     private String updater; | ||||||
|     /** |     /** | ||||||
|      * 是否删除 |      * 是否删除 | ||||||
|  | |||||||
| @ -610,7 +610,7 @@ public class PayOrderServiceTest extends BaseDbAndRedisUnitTest { | |||||||
|         orderExtensionMapper.insert(orderExtension); |         orderExtensionMapper.insert(orderExtension); | ||||||
|         // 重要:需要将 order 的 extensionId 更新下 |         // 重要:需要将 order 的 extensionId 更新下 | ||||||
|         order.setExtensionId(orderExtension.getId()); |         order.setExtensionId(orderExtension.getId()); | ||||||
|         orderMapper.updateById(new PayOrderDO().setId(order.getId()).setExtensionId(orderExtension.getId())); |         orderMapper.updateById(order); | ||||||
|         // 准备参数 |         // 准备参数 | ||||||
|         PayChannelDO channel = randomPojo(PayChannelDO.class, o -> o.setId(10L)); |         PayChannelDO channel = randomPojo(PayChannelDO.class, o -> o.setId(10L)); | ||||||
|         PayOrderRespDTO notify = randomPojo(PayOrderRespDTO.class, |         PayOrderRespDTO notify = randomPojo(PayOrderRespDTO.class, | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV