zoukankan      html  css  js  c++  java
  • Mybatis 关联查询分页问题的解决

    在查询 A 表的时候分页语法正常功能,可以查到不重复的A 的数据
    如果 A 表和 B 表关联查询,A 和 B 的关系时 一对多,这样,查询的结果 A 肯定会有多条数据的结果对应到 B,
    这样查询结果加上分页后,经过 Mybatis 的整合,每页的数据就不正常了,通常时少了。

    解决办法
    两种:
    一种是先将 A 表结果用分页语句查询出来,然后在根据这个结果进行与 B 表的关联查询,也就是先子查询然后左查询

    select * from (select * from A where name="zhang" limit 0,10) a LEFT JOIN B b ON a.id=b.id
    

    另一种是先正常查询 A 表,然后对 A 表的每条数据进行查询对应 B 表的数据,
    用在 Mabatis 的映射语句上,如下

      <resultMap type="com.informa.staffRole.RolePO"
                   id="InvoiceRoleMap">
            <result property="id" column="id" jdbcType="INTEGER"/>
            <result property="roleId" column="role_id" jdbcType="INTEGER"/>
            <result property="roleStatus" column="role_status" jdbcType="INTEGER"/>
            <result property="isSuperAdmin" column="is_super_admin" jdbcType="INTEGER"/>
            <result property="roleName" column="role_name" jdbcType="VARCHAR"/>
            <result property="isDeleted" column="is_deleted" jdbcType="INTEGER"/>
            <result property="creator" column="creator" jdbcType="VARCHAR"/>
            <result property="creatorId" column="creator_id" jdbcType="INTEGER"/>
            <result property="gmtCreated" column="gmt_created" jdbcType="TIMESTAMP"/>
            <result property="modifier" column="modifier" jdbcType="VARCHAR"/>
            <result property="modifierId" column="modifier_id" jdbcType="INTEGER"/>
            <result property="gmtModified" column="gmt_modified" jdbcType="TIMESTAMP"/>
            <collection property="permissionPOList" column="role_id" notNullColumn="role_id"
                        select="com.informa.common.mapper.RolePermissionMapper.findPermissionListByRoleId"/>
        </resultMap>
    
    

    通过在 collection 标签中的 select 属性引入查询 B 表对应的 mapper 上的方法,来查询

  • 相关阅读:
    SqlSession接口和Executor
    MySQL 存储表情字符
    Lisp学习--Windows下面的开发环境搭建
    使用反射+缓存+委托,实现一个不同对象之间同名同类型属性值的快速拷贝
    GIT团队合作探讨之一-保持工作同步的概念和实践
    关于IE8下media query兼容的解决方案探讨
    git下的团队合作模型及git基础知识汇集
    互联网环境下服务提供的模式
    web统计数据搜集及分析原理
    网站统计及移动应用数据统计相关术语知识详解
  • 原文地址:https://www.cnblogs.com/vawa/p/14204827.html
Copyright © 2011-2022 走看看