亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Mybatis關(guān)聯(lián)查詢遇到的坑-無主鍵的關(guān)聯(lián)數(shù)據(jù)去重問題

 更新時(shí)間:2023年03月30日 10:19:49   作者:p7+  
這篇文章主要介紹了Mybatis關(guān)聯(lián)查詢遇到的坑-無主鍵的關(guān)聯(lián)數(shù)據(jù)去重問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

先說下結(jié)論

使用Mybatis的association關(guān)聯(lián)查詢時(shí),例如 DeviceInfo 關(guān)聯(lián) RawData 查詢數(shù)據(jù),如果查詢的SQL不包含DeviceInfo的主鍵時(shí)

Mybatis會(huì)將查詢的結(jié)果集按照RawData數(shù)據(jù)進(jìn)行去重,與你有沒有使用group by無關(guān)。

解決方法1

如果你的查詢不需要關(guān)聯(lián)數(shù)據(jù),重寫resultMap,去掉association關(guān)聯(lián)的部分,此時(shí)無論你有沒有查詢主鍵,返回的數(shù)據(jù)都是正確數(shù)據(jù)

<resultMap id="DeviceTypeResultMap" type="DeviceInfo">
?? ?<!-- 有沒有查詢主鍵,返回的數(shù)據(jù)都是正確數(shù)據(jù) -->
?? ?<!--<id column="device_id" property="deviceId" jdbcType="BIGINT"></id>-->
?? ?<result column="device_type_name" property="deviceTypeName" jdbcType="VARCHAR" />
?? ?<result column="device_type_id" property="deviceTypeId" jdbcType="INTEGER" />
</resultMap>

解決方法2

如果你的查詢不需要關(guān)聯(lián)數(shù)據(jù),但是懶的再寫resultMap,那么SQL的查詢字段一定要加上主表的主鍵

例子:

DeviceInfo

public class DeviceInfo implements Serializable {
?? ?private Long deviceId;
?? ?private Integer deviceTypeId;
?? ?private String deviceTypeName;
?? ?private RawData rawData;
?? ?……
}

DeviceInfo 關(guān)聯(lián)查詢 RawData 返回的 resultMap

<resultMap id="BaseResultMap"
?? ?type="DeviceInfo">
?? ?<id column="device_id" property="deviceId" jdbcType="BIGINT"></id>
?? ?<result column="mac" property="mac" jdbcType="VARCHAR" />
?? ?<result column="device_type_id" property="deviceTypeId" jdbcType="BIGINT" />
?? ?<association property="rawData"
?? ??? ?javaType="RawData">
?? ??? ?<id column="device_id" property="deviceId" />
?? ??? ?<result column="data_time" property="dataTime" jdbcType="TIMESTAMP" />
?? ??? ?<result column="battery_power" property="batteryPower"
?? ??? ??? ?jdbcType="TINYINT" />
?? ?</association>
</resultMap>

根據(jù) device_type_id 分組查詢 device_type_id 和 device_type_name

<select id="getDeviceTypeList" parameterType="DeviceInfo" resultMap="BaseResultMap">
?? ?select device_type_id,device_type_name FROM tb_device_info group by device_type_id order by null
</select>

最后

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringMVC中處理Http請(qǐng)求的原理詳解

    SpringMVC中處理Http請(qǐng)求的原理詳解

    這篇文章主要介紹了SpringMVC中處理Http請(qǐng)求的原理詳解,當(dāng)一個(gè)http請(qǐng)求過來了首先經(jīng)過的是DispatcherServlet這么一個(gè)前端控制器并調(diào)用了這個(gè)前端控制器的doService方法,這個(gè)方法最終我們發(fā)現(xiàn)它調(diào)用了doDispatcher這么一個(gè)方法,需要的朋友可以參考下
    2023-12-12
  • SpringBoot對(duì)Druid配置SQL監(jiān)控功能失效問題及解決方法

    SpringBoot對(duì)Druid配置SQL監(jiān)控功能失效問題及解決方法

    這篇文章主要介紹了SpringBoot對(duì)Druid配置SQL監(jiān)控功能失效問題的解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • Java爬蟲實(shí)現(xiàn)爬取京東上的手機(jī)搜索頁面 HttpCliient+Jsoup

    Java爬蟲實(shí)現(xiàn)爬取京東上的手機(jī)搜索頁面 HttpCliient+Jsoup

    下面小編就為大家分享一篇Java爬蟲實(shí)現(xiàn)爬取京東上的手機(jī)搜索頁面 HttpCliient+Jsoup,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • 基于Java語言的遞歸運(yùn)算例題詳解

    基于Java語言的遞歸運(yùn)算例題詳解

    一個(gè)方法在執(zhí)行過程中調(diào)用自身, 就稱為 "遞歸"。本文將通過幾個(gè)例題帶大家深入了解一下Java語言中的遞歸運(yùn)算,感興趣的可以了解一下
    2022-08-08
  • 獲取JPEGImageEncoder和JPEGCode這兩個(gè)類的方法

    獲取JPEGImageEncoder和JPEGCode這兩個(gè)類的方法

    下面小編就為大家?guī)硪黄@取JPEGImageEncoder和JPEGCode這兩個(gè)類的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • Mybatis的SqlRunner執(zhí)行流程實(shí)現(xiàn)

    Mybatis的SqlRunner執(zhí)行流程實(shí)現(xiàn)

    MyBatis提供了一個(gè)用于操作數(shù)據(jù)庫的SqlRunner工具類,對(duì)JDBC做了很好的封裝,本文主要介紹了Mybatis的SqlRunner執(zhí)行流程實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • Java????????HashMap遍歷方法匯總

    Java????????HashMap遍歷方法匯總

    這篇文章主要介紹了Java????????HashMap遍歷方法匯總,HashMap?的遍歷方法有很多種,不同的?JDK?版本有不同的寫法,下文關(guān)于其遍歷方法總結(jié)需要的小伙伴可以參考一下
    2022-05-05
  • 一步步教你如何使用Java實(shí)現(xiàn)WebSocket

    一步步教你如何使用Java實(shí)現(xiàn)WebSocket

    websocket協(xié)議是基于TCP的一種新的網(wǎng)絡(luò)協(xié)議,它實(shí)現(xiàn)了瀏覽器與服務(wù)器的全雙工通訊-允許服務(wù)器主動(dòng)發(fā)起信息個(gè)客戶端,websocket是一種持久協(xié)議,http是非持久協(xié)議,下面這篇文章主要給大家介紹了關(guān)于如何使用Java實(shí)現(xiàn)WebSocket的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • SpringMVC中Model和ModelAndView的EL表達(dá)式取值方法

    SpringMVC中Model和ModelAndView的EL表達(dá)式取值方法

    下面小編就為大家分享一篇SpringMVC中Model和ModelAndView的EL表達(dá)式取值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • Spring Boot中使用Spring-data-jpa實(shí)現(xiàn)數(shù)據(jù)庫增刪查改

    Spring Boot中使用Spring-data-jpa實(shí)現(xiàn)數(shù)據(jù)庫增刪查改

    本篇文章主要介紹了Spring Boot中使用Spring-data-jpa實(shí)現(xiàn)增刪查改,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
    2017-03-03

最新評(píng)論