鍍金池/ 問答/Java/ mybatis+pagehelper分頁查詢,resultmap中有collec

mybatis+pagehelper分頁查詢,resultmap中有collection時每頁條數(shù)不對

<resultMap id="orders" type="OrderDto">
        <id property="id" column="id"/>
        <result property="number" column="onumber"/>
        <association property="address" javaType="AddressDto">
            <id property="id" column="aid"/>
            <result property="name" column="aname"/>
            <result property="address" column="address"/>
            <result property="remark" column="aremark"/>
        </association>
        <association property="activity" javaType="ActivityDto">
            <id property="id" column="cid"/>
            <result property="name" column="cname"/>
        </association>
        <collection property="productRels" ofType="OrderProductRelDto">
            <id property="id" column="rid"/>
            <result property="qty" column="qty"/>
        </collection>
    </resultMap>

pageSize是10條,但查出來size只有8條(total有38條,不是條數(shù)不足的問題):

"pageNum":1,"pageSize":10,"pages":4,"prePage":0,"size":8,"startRow":1,"total":38

請教各位朋友是哪邊寫得有問題么,謝謝大家

回答
編輯回答
忘了我

【mybatis】關(guān)聯(lián)查詢——mybatis一對多兩種方式實(shí)現(xiàn)詳解
先好好讀一下這篇博客,講的很清晰透徹,按照這篇博客的說法你這屬于第二種用法,mybatis通過查詢結(jié)果之后折疊結(jié)果集把數(shù)據(jù)放在了集合里,這就導(dǎo)致總條數(shù)的混亂.而第一種的方式是分兩次查詢,就不會有分頁的問題,所以解決方案就是把你的collection 寫成第一種的方式


PageHelper的作者明確表示了不支持這么干
Mybatis-PageHelper

2018年5月8日 23:03
編輯回答
誮惜顏

你要修改你的SQL,把是個結(jié)果先查出來,再關(guān)聯(lián)那個集合找就沒問題了

2017年3月9日 16:00
編輯回答
青黛色

你這是第4頁,所以只有8頁,唉,服了

2017年7月26日 01:31
編輯回答
汐顏

建議不要使用所謂的分頁插件。據(jù)我所知,這個pagehelper的分頁原理是讀取數(shù)據(jù)到內(nèi)存,然后在內(nèi)存里進(jìn)行分頁,這個在數(shù)據(jù)表很大然后要查詢比較靠后的數(shù)據(jù)時這點(diǎn)是致命的

2017年10月19日 19:57
編輯回答
來守候

樓主最后怎么解決的?分頁的時候不使用嵌套?

2018年6月4日 23:23
編輯回答
厭遇

看看的你表里面有沒有相同ID的數(shù)據(jù)

2017年2月23日 21:59