问题有点乱,希望你们能听懂我说什么
<select id="selectModel" parameterType="java.util.HashMap" resultType="java.util.HashMap">
${sql}
</select>
我们都知道此时返回的是一个map对象,字段是key,value是字段值
但现在有一个需求就是,再返回map的同时,通过字段里查询到的id再去查一张表
然后我想到的是通过映射resultMap,如下
<resultMap type="com.zdhy.platform.services.crud.entity.vo.ExcelOrderTableVO" id="ExcelOrderTableVO">
<collection property="dealHistories" select="getDealHistoryByorderId" column="order_id"/>
</resultMap>
<select id="excelModel" parameterType="java.util.HashMap" resultMap="ExcelOrderTableVO">
${sql}
</select>
ExcelOrderTableVO里面包含两个属性,一个是Map<xx,xx>dataMap,存储查询到的${sql}的属性和值
还有一个List<xxx> dealHistories,存储之后getDealHistoryByorderId查到的数据
因为查询到的字段是灵活的,无法写成固定对象来分别映射,只能通过map来保存查询到的值
意思就是在resultMap里不进行进一步处理,直接把查询到的数据放到ExcelOrderTableVO中的dataMap中
大神们,有谁知道该怎么做
在mybatis中能用sql代码sql实现的,尽量少用级联查询