欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis報(bào)錯(cuò)mapkey is required問題及解決

 更新時(shí)間:2024年06月15日 11:57:08   作者:時(shí)間是一種解藥  
這篇文章主要介紹了Mybatis報(bào)錯(cuò)mapkey is required問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Mybatis報(bào)錯(cuò)mapkey is required

問題背景

因?yàn)槭褂昧薽ybatisX插件,導(dǎo)致檢查報(bào)錯(cuò)mapkey is required

解決方案

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

莫名出來的錯(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)文章

  • mybatis插入數(shù)據(jù)后如何返回新增數(shù)據(jù)的id值

    mybatis插入數(shù)據(jù)后如何返回新增數(shù)據(jù)的id值

    當(dāng)往mysql數(shù)據(jù)庫(kù)插入一條數(shù)據(jù)時(shí),有時(shí)候需要知道剛插入的信息,下面這篇文章主要給大家介紹了關(guān)于mybatis插入數(shù)據(jù)后如何返回新增數(shù)據(jù)id值的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • java實(shí)現(xiàn)打印正三角的方法

    java實(shí)現(xiàn)打印正三角的方法

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)打印正三角的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Java基于Dijkstra算法實(shí)現(xiàn)校園導(dǎo)游程序

    Java基于Dijkstra算法實(shí)現(xiàn)校園導(dǎo)游程序

    這篇文章主要為大家詳細(xì)介紹了Java基于Dijkstra算法實(shí)現(xiàn)校園導(dǎo)游程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • SpringBoot實(shí)現(xiàn)攔截器、過濾器、監(jiān)聽器過程解析

    SpringBoot實(shí)現(xiàn)攔截器、過濾器、監(jiān)聽器過程解析

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)攔截器、過濾器、監(jiān)聽器過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • kafka并發(fā)寫大消息異常TimeoutException排查記錄

    kafka并發(fā)寫大消息異常TimeoutException排查記錄

    這篇文章主要為大家介紹了kafka并發(fā)寫大消息異常TimeoutException的排查記錄及解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02
  • SpringBoot整合MyCat實(shí)現(xiàn)讀寫分離的方法

    SpringBoot整合MyCat實(shí)現(xiàn)讀寫分離的方法

    這篇文章主要介紹了SpringBoot整合MyCat實(shí)現(xiàn)讀寫分離的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Spring MVC之WebApplicationContext_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Spring MVC之WebApplicationContext_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了Spring MVC之WebApplicationContext的相關(guān)資料,需要的朋友可以參考下
    2017-08-08
  • Java中Iterator迭代器的使用詳解

    Java中Iterator迭代器的使用詳解

    在程序開發(fā)中,經(jīng)常需要遍歷集合中的所有元素。針對(duì)這種需求,JDK專門提供了一個(gè)接口java.util.Iterator。本文就來詳細(xì)說說Iterator迭代器的使用,感興趣的可以了解一下
    2022-10-10
  • Java實(shí)現(xiàn)布隆過濾器的幾種方式總結(jié)

    Java實(shí)現(xiàn)布隆過濾器的幾種方式總結(jié)

    這篇文章給大家總結(jié)了幾種Java實(shí)現(xiàn)布隆過濾器的方式,手動(dòng)硬編碼實(shí)現(xiàn),引入Guava實(shí)現(xiàn),引入hutool實(shí)現(xiàn),通過redis實(shí)現(xiàn)等幾種方式,文中有詳細(xì)的代碼和圖解,需要的朋友可以參考下
    2023-07-07
  • springboot依賴沖突問題及解決過程

    springboot依賴沖突問題及解決過程

    新搭了一個(gè)springboot 2.3.7.RELASE的框架,在集成mysql,tkMapper,mybatis的過程中,啟動(dòng)報(bào)錯(cuò),怎么解決這個(gè)問題呢,下面小編給大家?guī)砹藄pringboot依賴沖突問題及解決過程,一起看看吧
    2021-09-09

最新評(píng)論