zoukankan      html  css  js  c++  java
  • Mybatis关联查询,查询出的记录数量与数据库直接查询不一致,如何解决?

      <select id="findUserInfoListForMap"    resultMap="BaseResultMap">
      SELECT  p.name, u.u_name,u.company,u.proComany,u.mobile,u.email, r.money
     FROM iw_user u
     LEFT JOIN raiseentry r on r.userId=u.id
     LEFT JOIN project p on r.sourceId=p.projectId
      </select>

     经细心验证,BaseResultMap中的属性均有配全,但是该语句执行时返回的记录条数与直接在数据库中查询的不一致

     但是改成如下语句后,(多了个查询字段u.id)

      <select id="findUserInfoListForMap"    resultMap="BaseResultMap">   

    SELECT  u.id,p.name, u.u_name,u.company,u.proComany,u.mobile,u.email, r.money  

    FROM iw_user u  

    LEFT JOIN raiseentry r on r.userId=u.id  

    LEFT JOIN project p on r.sourceId=p.projectId   </select>

    查询结果正常。百度了下发现也有人碰到这种情况(http://www.iteye.com/problems/95931),其解决方法是:

    1)select * from。。。。

    2)select  r.userId,u.id, r.sourceId,p.projectId(将这些字段都包括进去)。。。

    3)将所要查询的字段封装成一个DTO对象,在Mapper.xml中再定义一个resultMap,type指向那个DTO对象,内容是需要查询字段与DTO对象属性中的映射。

  • 相关阅读:
    Hdu 1257 最少拦截系统
    Hdu 1404 Digital Deletions
    Hdu 1079 Calendar Game
    Hdu 1158 Employment Planning(DP)
    Hdu 1116 Play on Words
    Hdu 1258 Sum It Up
    Hdu 1175 连连看(DFS)
    Hdu 3635 Dragon Balls (并查集)
    Hdu 1829 A Bug's Life
    Hdu 1181 变形课
  • 原文地址:https://www.cnblogs.com/wuyun-blog/p/5693937.html
Copyright © 2011-2022 走看看