mybatis中foreach報(bào)錯(cuò):_frch_item_0 not found的解決方法
發(fā)現(xiàn)問題
在mybatis的動(dòng)態(tài)sql中最常見的錯(cuò)誤就是使用,比如:_frch_item_0 not found
There is no getter for property named 'states' in 'class com.xingguo.model.User'
等等。
一般在使用時(shí)出現(xiàn)問題是由以下幾種錯(cuò)誤使用方式造成的:
1.參數(shù)類型不是List,特別當(dāng)參數(shù)為實(shí)體類,一個(gè)屬性為list時(shí),注意collection的名字。
2.遍歷時(shí)屬性的名字或者字段錯(cuò)誤
3.多個(gè)參數(shù)時(shí)沒有使用@param進(jìn)行命名,在sql中順序混亂
下面從MySQL的源碼中看下對(duì)于list參數(shù)是如何解析的。
首先看到DefaultSqlSession.Java中的wrapCollection()
方法:
private Object wrapCollection(final Object object) { if (object instanceof Collection) { StrictMap<Object> map = new StrictMap<Object>(); map.put("collection", object); if (object instanceof List) { map.put("list", object); } return map; } else if (object != null && object.getClass().isArray()) { StrictMap<Object> map = new StrictMap<Object>(); map.put("array", object); return map; } return object; }
所以從上面可以看到中默認(rèn)情況下寫的array和list,也就是collection默認(rèn)的是array和list。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
- 解決mybatis-plus使用jdk8的LocalDateTime 查詢時(shí)報(bào)錯(cuò)的方法
- SpringBoot集成MybatisPlus報(bào)錯(cuò)的解決方案
- mybatis報(bào)錯(cuò)元素內(nèi)容必須由格式正確的字符數(shù)據(jù)或標(biāo)記組成異常的解決辦法
- Mybatis批量更新報(bào)錯(cuò)問題
- Mybatis返回int或者Integer類型報(bào)錯(cuò)的解決辦法
- Mybatis報(bào)錯(cuò): org.apache.ibatis.exceptions.PersistenceException解決辦法
- Oracle+Mybatis的foreach insert批量插入報(bào)錯(cuò)的快速解決辦法
- MyBatis MapperProvider MessageFormat拼接批量SQL語句執(zhí)行報(bào)錯(cuò)的原因分析及解決辦法
- MyBatis常見報(bào)錯(cuò)問題及解決方案
相關(guān)文章
使用Filter實(shí)現(xiàn)登錄權(quán)限驗(yàn)證
這篇文章主要為大家詳細(xì)介紹了使用Filter實(shí)現(xiàn)登錄權(quán)限驗(yàn)證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10Java實(shí)現(xiàn)合并兩個(gè)有序序列算法示例
這篇文章主要介紹了Java實(shí)現(xiàn)合并兩個(gè)有序序列算法,簡(jiǎn)單描述了序列合并算法的原理與java合并有序序列的具體操作步驟及相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-09-09詳解Springboot如何優(yōu)雅的進(jìn)行數(shù)據(jù)校驗(yàn)
基于?Spring?Boot?,如何“優(yōu)雅”的進(jìn)行數(shù)據(jù)校驗(yàn)?zāi)?,本文將待大家詳?xì)介紹Springboot如何優(yōu)雅的進(jìn)行數(shù)據(jù)校驗(yàn),文中有詳細(xì)的代碼示例和流程步驟,需要的朋友可以參考下2023-06-06詳解Java中l(wèi)ist,set,map的遍歷與增強(qiáng)for循環(huán)
這篇文章主要介紹了詳解Java中l(wèi)ist,set,map的遍歷與增強(qiáng)for循環(huán)的相關(guān)資料,需要的朋友可以參考下2017-02-02教你使用idea搭建ssm詳細(xì)教程(Spring+Spring Mvc+Mybatis)
今天教大家使用idea搭建ssm詳細(xì)教程(Spring+Spring Mvc+Mybatis),文中有非常詳細(xì)的圖文介紹及代碼示例,對(duì)正在學(xué)習(xí)使用idea的小伙伴很有幫助,需要的朋友可以參考下2021-05-05SpringBoot 使用@WebMvcTest測(cè)試MVC Web Controller
這篇文章主要介紹了SpringBoot 使用@WebMvcTest測(cè)試MVC Web Controller,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11Java的Hibernate框架中的雙向主鍵關(guān)聯(lián)與雙向外鍵關(guān)聯(lián)
Hibernate想要實(shí)現(xiàn)雙向的關(guān)聯(lián)就必須在映射文件的兩端同時(shí)配置<one-to-one>,另外還要在主映射的一端采用foreign外鍵關(guān)聯(lián)屬性,下面我們就一起來看一下Java的Hibernate框架中的雙向主鍵關(guān)聯(lián)與雙向外鍵關(guān)聯(lián)方法:2016-06-06Java8中Optional的一些常見錯(cuò)誤用法總結(jié)
我們知道 Java 8 增加了一些很有用的 API, 其中一個(gè)就是 Optional,下面這篇文章主要給大家介紹了關(guān)于Java8中Optional的一些常見錯(cuò)誤用法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-07-07