Mybatis如何使用注解方式设置resultMap的type属性。

@Mapper
public interface TableSearchMapper {
  @Select("call sp_XTBCX(#{tableName,mode=IN,jdbcType=VARCHAR},'','',#{result,mode=OUT,jdbcType=CURSOR,javaType=ResultSet,resultMap=result})")
  @Results(id = "result")
  @Options(statementType= StatementType.CALLABLE )
  public List<Map<String,Object>> tableSearch(@Param("tableName")String tableName,@Param("result")List<Map<String,Object>> result);
}

存储过程是输入表名后输出经过处理的全集,所以列名是不确定的,想写一个动态的方法,通过网上搜索XML形式在配置中将的type属性设置成HashMap可以实现,但是由于现在工程中所有Mapper都是基于注解形式的,但是@Results没有type属性

还有一点疑惑是:TableSearchMapper这个方法,返回值是否可以是void,是将Map参数传进来之后return Map参数还是return 这个方法的返回值?

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7513323
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:mybatis多表查询的结果映射(resultMap)
  • 除此之外, 这篇博客: mybatis 使用集合中的 ·resultMap="TestAaa",结果自动转为实体,resultType="map"结果就是map类型的 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    <resultMap id="TestAaa" type="cn.stu.bestcxx.entity.Test">
        <id column="name_a" jdbcType="INTEGER" property="nameA" />
        <result column="name_b" jdbcType="VARCHAR" property="nameB" />
        <result column="name_c" jdbcType="BIT" property="nameC" />
      </resultMap>

    resultMap="TestAaa",结果自动转为实体,resultType="map"结果就是map类型的

     <select id="getById" parameterType="java.lang.Integer" resultMap="Test">
        select 
        <include refid="columns" />
        from test
        where name_a = #{nameA,jdbcType=INTEGER}
      </select>


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^