
例如 一个门店 对应多张 可正常使用PageHelper分页
PageHelperstartPage(page, size);
select
from cms_store
limit 10,10 //正常单表查分页即可
</select>
<resultMap id="BaseResultMap" type="combearshcloudservicesomhecdomainCmsStore">
<result column="id" jdbcType="INTEGER" property="id" />
<result column="enable_status" jdbcType="INTEGER" property="enableStatus" />
<result column="delete_flag" jdbcType="INTEGER" property="deleteFlag" />
<select id="queryImagesList" resultType="combearshcloudservicesomhecdomainCmsStoreImage">
select<include refid="Base_Image_Column_List">
from cms_store_image csi
where csistore_id = #{id}
</select>
即1条主表记录 然后封装resultMap 里的cmsStoreImages属性时,会拿这条记录的id(不限于id y要拿什么值 输什么column)(所以column的值很重要!!) 来到select里去查对应的多条记录
如果使用left join 一对多查询 则会产生多条记录 例如一个门店有3条记录
则本来要查的门店应该是一条不重复记录 结果统计数据的时候却统计了3条 虽然最后mybatis会封装到1条主表数据里
这会造成两个问题: 1:总条数不准 2查询10条主表数据 mybatis组合封装后只返回了 三四条主表数据
解决:先对主表进行分页查询 然后left join 从表
select from
(select from cms_store limit 10) cs
left join cms_store_image csi on csid = csistore_id 即可查询一对多且 一的条数为10条
总记录数需要另外统计
以上就是关于mybatis一对多分页查询全部的内容,包括:mybatis一对多分页查询、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)