Mybatis報(bào)錯(cuò)mapkey is required問(wèn)題及解決
Mybatis報(bào)錯(cuò)mapkey is required
問(wèn)題背景
因?yàn)槭褂昧薽ybatisX插件,導(dǎo)致檢查報(bào)錯(cuò)mapkey is required

解決方案
1 關(guān)閉mybatis的檢查,ctrl+alt+s打開setting,Editor→inspections→mybatis

莫名出來(lái)的錯(cuò)誤,之前還是好好的
Mybatis注解@MapKey的使用
MyBatis查詢一些記錄,數(shù)據(jù)涉及到兩個(gè)表里的數(shù)據(jù),需要連表查詢,但我MyBatis的返回結(jié)果不想創(chuàng)建新的DO對(duì)象,因此使用@MapKey注解返回一個(gè)Map集合。
含義
@MapKey注解用于mapper.xml文件中,一般用于查詢多條記錄中各個(gè)字段的結(jié)果,存儲(chǔ)在Map中。
Map結(jié)構(gòu)的示例
如下:
Map<Long, Map<String, String>>。范型類型可以修改。
- Map的key:一般存儲(chǔ)每條記錄的主鍵,也可以用其他值表示,主要取決于Dao層@MapKey注解后面的字段(如@MapKey("id"));
- Map的value:也是一個(gè)Map,表示查詢出這條記錄的每個(gè)字段的字段名稱和字段值。
1. mapper.xml文件
<select id="getInfoById" resultType="java.util.Map">
select
ext.id as id,
info.produce_area as area,
ext.attribute_value as companyName
from product_info info
left join product_ext ext on info.id=ext.id
where info.id=#{id} and ext.attribute_name=#{name}
</select>2. dao
@MapKey("id")
Map<Long,Map<String,String>> getInfoById(@Param("id") Long id, @Param("name") String name);3. manager
// 查詢,返回結(jié)果:{1={area:上海,companyName=西西公司}}
// 如果是多條記錄,返回結(jié)果如:{1={area:上海,companyName:西西公司},2={area:南京,compantyName:猴猴公司}}
Map<Long, Map<String, String>> map = productDao.getInfoById(id, "公司名稱");
if(map==null || map.isEmpty() || !map.containsKey(id)){
return null;
}
// 獲取結(jié)果
String area = produceInfoMap.get(id).get("area");
String companyName = produceInfoMap.get(productTracInfoId).get("companyName");
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
將Swagger2文檔導(dǎo)出為HTML或markdown等格式離線閱讀解析
這篇文章主要介紹了將Swagger2文檔導(dǎo)出為HTML或markdown等格式離線閱讀,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
簡(jiǎn)單了解java ibatis #及$的區(qū)別和用法
這篇文章主要介紹了簡(jiǎn)單了解java ibatis #及$的區(qū)別和用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
SpringBoot數(shù)據(jù)層測(cè)試事務(wù)回滾的實(shí)現(xiàn)流程
這篇文章主要介紹了SpringBoot數(shù)據(jù)層測(cè)試事務(wù)回滾的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-10-10
java計(jì)算兩點(diǎn)間的距離方法總結(jié)
小編給大家總結(jié)了在java中計(jì)算兩點(diǎn)之家距離的方法以及相關(guān)實(shí)例代碼分享,有需要的讀者參考下。2018-02-02
IntelliJ?IDEA?2022.2.3最新激活圖文教程(親測(cè)有用永久激活)
今天給大家分享一個(gè)?IDEA?2022.2.3?的激活破解教程,全文通過(guò)文字+圖片的方式講解,手把手教你如何激活破解?IDEA,?只需要幾分鐘即可搞定,對(duì)idea2022.2.3激活碼感興趣的朋友跟隨小編一起看看吧2022-11-11
SpringCloud?Nacos服務(wù)分級(jí)存儲(chǔ)模型詳解
Nacos服務(wù)分級(jí)存儲(chǔ)模型是Nacos存儲(chǔ)服務(wù)注冊(cè)信息和配置信息的核心模型之一,本文將對(duì)?Nacos?服務(wù)分級(jí)存儲(chǔ)模型進(jìn)行深入解析,感興趣的朋友一起看看吧2024-02-02

