mybatis中foreach報(bào)錯(cuò):_frch_item_0 not found的解決方法
發(fā)現(xiàn)問(wèn)題
在mybatis的動(dòng)態(tài)sql中最常見(jiàn)的錯(cuò)誤就是使用,比如:_frch_item_0 not found
There is no getter for property named 'states' in 'class com.xingguo.model.User'
等等。
一般在使用時(shí)出現(xiàn)問(wèn)題是由以下幾種錯(cuò)誤使用方式造成的:
1.參數(shù)類型不是List,特別當(dāng)參數(shù)為實(shí)體類,一個(gè)屬性為list時(shí),注意collection的名字。
2.遍歷時(shí)屬性的名字或者字段錯(cuò)誤
3.多個(gè)參數(shù)時(shí)沒(méi)有使用@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í)或者工作能帶來(lái)一定的幫助,如有疑問(wèn)大家可以留言交流,謝謝大家對(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ò)問(wèn)題
- 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語(yǔ)句執(zhí)行報(bào)錯(cuò)的原因分析及解決辦法
- MyBatis常見(jiàn)報(bào)錯(cuò)問(wèn)題及解決方案
相關(guān)文章
java 生成有序賬號(hào)的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇java 生成有序賬號(hào)的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10
理解 MyBatis 是如何在 Spring 容器中初始化的
這篇文章主要介紹了理解 MyBatis 是如何在 Spring 容器中初始化的,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
SpringBoot打印系統(tǒng)執(zhí)行的sql語(yǔ)句及日志配置指南
這篇文章主要給大家介紹了關(guān)于SpringBoot打印系統(tǒng)執(zhí)行的sql語(yǔ)句及日志配置的相關(guān)資料,在Java SpringBoot項(xiàng)目中如果使用了Mybatis框架,默認(rèn)情況下執(zhí)行的所有SQL操作都不會(huì)打印日志,需要的朋友可以參考下2023-10-10
詳解springboot+mybatis多數(shù)據(jù)源最簡(jiǎn)解決方案
本篇文章主要介紹了詳解springboot+mybatis多數(shù)據(jù)源最簡(jiǎn)解決方案,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
Java生產(chǎn)者和消費(fèi)者例子_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
生產(chǎn)者-消費(fèi)者(producer-consumer)問(wèn)題,也稱作有界緩沖區(qū)(bounded-buffer)問(wèn)題,兩個(gè)進(jìn)程共享一個(gè)公共的固定大小的緩沖區(qū)。下文通過(guò)實(shí)例給大家介紹java生產(chǎn)者和消費(fèi)者,感興趣的朋友一起學(xué)習(xí)吧2017-05-05
java無(wú)鎖hashmap原理與實(shí)現(xiàn)詳解
本文主要介紹了java無(wú)鎖hashmap原理與實(shí)現(xiàn),大家參考使用吧2014-01-01

