1. 程式人生 > >MyBatis使用foreach語句報錯The expression 'array' evaluated to a null val

MyBatis使用foreach語句報錯The expression 'array' evaluated to a null val

原因:傳遞一個 List 例項或者陣列作為引數物件傳給 MyBatis時,MyBatis 會自動將它包裝在一個 Map 中,用名稱作為鍵。

情況一:直接傳參Long[]陣列

List<SysUserEntity> listByUser(Long[] ids);
MyBatis檔案中:collection="array"
o.org_id IN
<foreach item="ids" collection="array" open="(" separator="," close=")">
   #{ids}
</foreach>

情況二:使用Query傳遞陣列引數

params.put("ids",ids);

Query query = new Query(params);

MyBatis檔案中:collection="ids"

o.org_id IN
<foreach item="ids" collection="ids" open="(" separator="," close=")">
	#{ids}
</foreach>