今天在開發過程中,由於業務需求,需要前台同時輸入多個值進行模糊查詢,所以我預想將輸入的值,以陣列形式傳入,並在 mybatis 的 xml 檔案中,用foreach
標籤進行遍歷。在遍歷過程**現了問題,後台報了乙個 mybatis 的錯誤。錯誤如下所示:
nested exception is org.apache.ibatis.builder.builderexception: error evaluating expression 'pagedata.butxt'. return value (3333) was not iterable.
翻譯過來的意思大概就是,pagedata.butxt
獲取到的是值,而不是 collection ,從而無法進行迭代。。
遇到這個報錯,我的第一反應當然就是檢視自己的**了。 (
"/comprehensivereport"
)public result list
(page page)
//將 pagedata 物件存放到 page 物件中
page.
setpagedata
(pd)
;//調取 service 方法。
list
varlist = comprehensivereportservice.
list
(page)
;//將結果存入 map 並返回
就在自我懷疑時,看到了救命稻草(乙個錯誤貼),上面寫著出現錯誤的原因是傳入的非 list 資料,所以我就想將陣列轉換成 list 試一下呢?
修改我 controller 中的**,修改後**如下:
("/comprehensivereport"
)public result list
(page page)
//將 pagedata 物件存放到 page 物件中
page.
setpagedata
(pd)
;//調取 service 方法。
list
varlist = comprehensivereportservice.
list
(page)
;//將結果存入 map 並返回
修改 xml **如下:
"datalistpage"
parametertype
="page"
resulttype
="com.xiye.common.entity.page.pagedata"
>
select t.bukrs,
t.butxt,
t.matnr,
t.maktx,
t.amount,
t.zpgzj,
round(case t.zpgzj
when '0' then
0else
nvl2(t.zpgzj, (t.amount - t.zpgzj) / t.zpgzj, 0)
end,
2) * 100 yjl
from operate_comprehensive_report t
>
test
="pagedata.bukrs != null and pagedata.bukrs.size > 0 "
>
item
="item"
index
="index"
collection
="pagedata.bukrs"
open
="and ("
separator
="or"
close
=")"
>
t.bukrs like concat(concat('%', #),'%')
foreach
>
if>
where
>
select
>
啟動專案進行測試,結果是剛才的錯誤沒有了但又出現了乙個新的錯誤,錯誤如下:
org.apache.ibatis.reflection.reflectionexception: there is no getter for property named '__frch_item_0' in 'class com.***x'
經過此次 bug ,感覺自己對 mybatis 了解還是甚少,而且上面雖然把問題解決了,但不知道其原因,日後努力學習找出此次出現 bug 的原因。
乙個在碼農道路上孤獨行走的人
記錄第一次部署mybatis
在學了mybatis後想加深一下印象,就把之前的乙個專案部署了mybatis框架,部署mybatis框架之後專案以前的運算元據的dbhelp就可以刪除了。然後記錄一下部署的時候到網上查的一些細節問題 1.對映檔案中的動態sql標籤如if when等使用引數時不需要用 包裹 2.獲取引數有兩種方式,一...
記錄一次oracle使用記錄
使用oracle資料庫的專案到我這邊,需要修改,咱雖然 學過 oracle,但那畢竟已經過去了。哈哈。使用database configuration assistant 建立資料庫,建立快完的時候,說我沒有監聽啥的,然後 通過 net manager 建立了,qizhong1 其中選中的那個就是建...
記一次RecyclerView使用過程遇到的坑
由於重構模組,將原本直屬與activity布局檔案中的recyclerview,遷移到fragment的布局檔案中,基本是從activity中copy到fragment中,但是,坑來了 fragment中的recyclerview突然無法顯示其中的列表項了。內心的感受是崩潰的 單步除錯,一步步跟蹤,...