MyBatis伝Listパラメータneted exception is org.apache.ibatis.binding.BindingException
1687 ワード
MyBatisがListパラメータに入ったとき、MyBatisがエラーを報告しました.neted exception is org.apaache.ibatis.binding.BindingException:Parameeter'codeList'not found.以下は関連コードです.
Mapper.java--
Mapper.javaを修正します
修正mapper.xml
foreach元素の属性は主にitem、index、collection、open、separator、closeがあります.itemは、セット内の各要素が反復する時の別名を表し、indexは反復中の位置を表す名前を指定し、openはこの文が何で始まるかを表し、separatorは、反復の間にどの記号を区切り記号として使用するかを表し、closeは何で終わるかを表します.foreachを使う時に一番重要なのは間違いやすいのがcollection属性です.この属性は必ず指定しなければなりませんが、その属性の値は違っています.主に次の3つの状況があります.が単一パラメータであり、パラメータタイプがListである場合、collection属性値はlistである. . が単一パラメータであり、パラメータタイプがarray配列である場合、collectionの属性値はarrayである. . もし入ってきたパラメータが複数の場合、それらを一つのMapにパッケージする必要があります.もちろんシングルパラメータもmapにパッケージすることができます.実際にあなたがパラメータを入力した時、MyBatisの中にもMapにパッケージされます.mapのkeyはパラメータ名です.このときのcollection属性値は、入ってきたListまたはarrayオブジェクトが自分のパッケージのmapの中にあるkeyである. 回転:https://www.cnblogs.com/caoyajun33-blog/p/6875169.html
Mapper.java--
void updateTeamNum(List codeList);
mapper.xml
update pay_payee set team_num=COALESCE(team_num,0)+1
where code in
#{code}
ソリューション:Mapper.javaを修正します
void updateTeamNum(@Param("codeList") List codeList);
または修正mapper.xml
update pay_payee set team_num=COALESCE(team_num,0)+1
where code in
#{code}
理由:foreach元素の属性は主にitem、index、collection、open、separator、closeがあります.itemは、セット内の各要素が反復する時の別名を表し、indexは反復中の位置を表す名前を指定し、openはこの文が何で始まるかを表し、separatorは、反復の間にどの記号を区切り記号として使用するかを表し、closeは何で終わるかを表します.foreachを使う時に一番重要なのは間違いやすいのがcollection属性です.この属性は必ず指定しなければなりませんが、その属性の値は違っています.主に次の3つの状況があります.