首先自定义一对多的关系,多余的字段我省略了,这里主要为了展示
<!-- 自定义sql -->
<resultMap id="BaseResultMapExtTypeName" type="com.rfca.bo.BlackWhiteListExtTypeName">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="carno" property="carno" jdbcType="VARCHAR"/>
<result column="black_white_type_id"
<collection property="parkinglotIds" column="id" javaType="java.util.List" select="selectlistpark" ofType="com.rfca.orm.pojo.TBlackWhiteListPark">
<id property="id" column="id"/>
<result property="parkinglotId" column="parkinglot_id"/>
</collection>
</resultMap>
collection 中的column中的id 是返回集合中的id,也是第二个查询中的参数
<select id="selectlistpark" resultMap="listpark">
select id, parkinglot_id from t_black_white_list_park where t_black_white_list_park.black_white_list_id = #{id}
</select>
现在查询总数的
sql
SELECT count(0) FROM t_black_white_list l INNER JOIN t_black_white_type t ON l.black_white_type_id = t.id WHERE l.black_white_tag = ?
就可以返回正确结果了
之前因为关联查询返回多列,mybatis返回时又做了折叠处理,所以有问题,就是把带有分页参数的sql和collection 的查询分开就可以了