Mybatis-plus查詢條件拒絕自動(dòng)去重問題
問題描述
當(dāng)進(jìn)行多表數(shù)據(jù)關(guān)聯(lián)時(shí)候,使用mybatis結(jié)果集封裝數(shù)據(jù),mybatis會(huì)將主鍵id作為map的key值,如果后面有重復(fù)的主鍵id,那么將會(huì)覆蓋之前的數(shù)據(jù),很顯然這不是多表關(guān)聯(lián)查詢數(shù)據(jù)想要看到的結(jié)果,如此以來(lái),最終結(jié)果會(huì)比實(shí)際結(jié)果少很多,因?yàn)閿?shù)據(jù)被去重了。
以下是正常使用的數(shù)據(jù)結(jié)果集聲明
<resultMap type="com.hhmt.delivery.pojo.model.vo.HhAdxAdSeatVo" id="JoinResultMap">
省略...
</resultMap>
<resultMap id="HhAdxAdSeatRelationListResult"
省略...
</resultMap>正常的查詢
<select id="selectHhAdxAdSeatRelationList" resultMap="HhAdxAdSeatRelationListResult">
SELECT
<include refid="Join_Column_List"/>,
省略...
</select>此時(shí)查詢出來(lái)的結(jié)果被去重了,本來(lái)分頁(yè)查10條結(jié)果卻只有4條數(shù)據(jù)
解決辦法
使用偽列,讓每一條數(shù)據(jù)都有一個(gè)唯一的id,這樣在存入map時(shí)候就不會(huì)覆蓋數(shù)據(jù)
1.實(shí)體類中添加偽列主鍵
@TableId private Long rowNum;
2.查詢中添加偽列字段
<!-- 結(jié)果集指定唯一id -->
<resultMap type="com.hhmt.delivery.pojo.model.vo.HhAdxAdSeatVo" id="JoinResultMap">
<id property="rowNum" column="rowNum"/>
省略...
</resultMap>
<!-- 查詢中給一個(gè)唯一偽列ID -->
<select id="selectHhAdxAdSeatRelationList" resultMap="HhAdxAdSeatRelationListResult">
SELECT
@rowNum:=@rowNum+1 as rowNum,
<include refid="Join_Column_List"/>,
<include refid="com.hhmt.delivery.dao.HhAdxMediaInfoMapper.Join_Column_List"/>,
<include
省略...
</select>這樣,最終查詢的數(shù)據(jù)將不會(huì)被去重
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatis在Mapper中傳遞多個(gè)參數(shù)的四種方法詳解
這篇文章主要介紹了MyBatis在Mapper中傳遞多個(gè)參數(shù)的四種方法,文章通過(guò)代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,,需要的朋友可以參考下2023-09-09
最新log4j2遠(yuǎn)程代碼執(zhí)行漏洞(附解決方法)
Apache?Log4j2?遠(yuǎn)程代碼執(zhí)行漏洞攻擊代碼,該漏洞利用無(wú)需特殊配置,經(jīng)多方驗(yàn)證,Apache?Struts2、Apache?Solr、Apache?Druid、Apache?Flink等均受影響,本文就介紹一下解決方法2021-12-12
SpringBoot集成thymeleaf渲染html模板的步驟詳解
這篇文章主要給大家詳細(xì)介紹了SpringBoot集成thymeleaf如何使實(shí)現(xiàn)html模板的渲染,文中有詳細(xì)的代碼示例,具有一定的參考價(jià)值,需要的朋友可以參考下2023-06-06
java單元測(cè)試JUnit框架原理與用法實(shí)例教程
這篇文章主要介紹了java單元測(cè)試JUnit框架原理與用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了java單元測(cè)試JUnit框架的概念、原理、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-11-11
單臺(tái)Spring Cloud Eureka升級(jí)到三臺(tái)Eureka高可用集群
今天小編就為大家分享一篇關(guān)于單臺(tái)Spring Cloud Eureka升級(jí)到三臺(tái)Eureka高可用集群,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
Java日期時(shí)間格式化操作DateUtils 的整理
這篇文章主要介紹了Java日期時(shí)間格式化操作DateUtils 的整理的相關(guān)資料,這里總結(jié)了java日期格式化的操作,需要的朋友可以參考下2017-07-07
java通過(guò)snmp協(xié)議獲取物理設(shè)備信息
這篇文章主要介紹了java通過(guò)snmp協(xié)議獲取物理設(shè)備信息,snmp中文含義是簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議,可用完成對(duì)計(jì)算機(jī)、路由器和其他網(wǎng)絡(luò)設(shè)備的遠(yuǎn)程管理和監(jiān)視,本文我們是通過(guò)java程序來(lái)獲取,需要的朋友可以參考下2023-07-07

