mirror of
https://github.com/YunaiV/ruoyi-vue-pro.git
synced 2025-10-31 02:28:03 +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