• 找不对自定义typeHandler:java.lang.IllegalStateException: No typehandler found for mapping ...


    1、自定义typeHandler

    package com.apollo.cloud.common.core.mybatis.typehandler;
    import java.sql.CallableStatement;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import cn.hutool.json.JSONObject;
    import cn.hutool.json.JSONUtil;
    import org.apache.ibatis.type.BaseTypeHandler;
    import org.apache.ibatis.type.JdbcType;
    import org.apache.ibatis.type.MappedJdbcTypes;
    import org.apache.ibatis.type.MappedTypes;
    
    @MappedTypes({JSONObject.class})
    @MappedJdbcTypes({JdbcType.VARCHAR})
    public class JsonTypeHandler extends BaseTypeHandler<JSONObject> {
    
    	@Override
    	public void setNonNullParameter(PreparedStatement ps, int i, JSONObject parameter,JdbcType jdbcType) throws SQLException {
    		ps.setString(i, JSONUtil.toJsonStr(parameter));
    	}
    
    	@Override
    	public JSONObject getNullableResult(ResultSet rs, String columnName)throws SQLException {
    		return JSONUtil.parseObj(rs.getString(columnName)).toBean(JSONObject.class);
    	}
    
    	@Override
    	public JSONObject getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
    		return JSONUtil.parseObj(rs.getString(columnIndex)).toBean(JSONObject.class);
    	}
    
    	@Override
    	public JSONObject getNullableResult(CallableStatement cs, int columnIndex)throws SQLException {
    		return JSONUtil.parseObj(cs.getString(columnIndex)).toBean(JSONObject.class);
    	}
    }

    2、配置包扫描

    mybatis-plus:
      type-handlers-package: com.apollo.cloud.common.core.mybatis.typehandler

    3、实体使用

    import cn.hutool.json.JSONObject;
    
    @Data
    @TableName(value = "order")
    @EqualsAndHashCode(callSuper = true)
    @ApiModel
    public class OrderInfo {
    	@TableField(typeHandler = JsonTypeHandler.class, jdbcType= JdbcType.VARCHAR)
    	private JSONObject payResponse;
    }
    

    4、问题原因:实体使用的类型和typeHandler中定义的不一致,类型修改一致问题解决
      实体使用:             

       typeHandler定义:

  • 相关阅读:
    win和linux简单排查思路
    应急响应概述
    S2-057复现
    七十二:内网安全-域横向CS&MSF联动及应急响应初始
    七十一:内网安全-域横向网络&传输&应用层隧道技术
    七十:内网安全-域横向内网漫游Socks代理隧道技术
    六十九:内网安全-域横向CobalStrike&SPN&RDP
    六十八:内网安全-域横向PTH&PTK&PTT哈希票据传递
    信息泄露漏洞详解
    文件上传漏洞详细解析
  • 原文地址:https://www.cnblogs.com/irobotzz/p/16021166.html
Copyright © 2020-2023  润新知