日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mybatis association表关联与rowbounds共同使用时的异常及其解决方案

發(fā)布時間:2025/4/5 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybatis association表关联与rowbounds共同使用时的异常及其解决方案 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

按照mybatis手冊中所說的,association有兩種實現(xiàn)方式,嵌套查詢和嵌套結果映射。如手冊中所述,select方式會帶來N+1次查詢的問題,考慮到效率問題的話建議使用嵌套結果映射。但是在結合使用rowbounds進行分頁的時候嵌套結果映射會報Mapped Statements with nested result mapping cannot be safely constrained by rowbounds異常。經過測試發(fā)現(xiàn)是rowbounds和resultmap-association之間有沖突,魚與熊掌不可兼得的話,我想最好還 是選擇放棄rowbounds。畢竟可以在sql語句里面加入變量來實現(xiàn)分頁。

解決方案: 新建一個RowBoundCapsule類,將原來的查詢參數(shù)和limit、offset封裝到一起,并采用如下的方式改寫mapper文件: <select id="selectByOwner" parameterType="int" resultMap="topicresultmap" resultSetType="FORWARD_ONLY">
select t.tid as tid, t.uid as tuid, t.content as content, t.commentcount as commentcount, t.pptime as pptime,
u.uid as uid, u.email as email, u.nickname as nickname, u.login as login, u.pass as pass, u.pic as pic
from topic as t LEFT JOIN user as u on t.uid = u.uid
where t.uid = #{o} limit #{offset},#{limit}
</select>

#{o}代表原來的參數(shù)。這樣就可以把分頁的任務交給數(shù)據(jù)庫來完成了。

?

=====================

或者不要rowbounds了,直接傳offset和pageSize到dao中,然后在sql后加limit #{offset},#{limit}

?

總結

以上是生活随笔為你收集整理的mybatis association表关联与rowbounds共同使用时的异常及其解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。