Ich wollte MyBatis '
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter '__frch_item_0' not found. Available parameters are [addItems, param1]
ItemMasterMapper.java
void addItems(@Param("addItems") List<Item> addItems);
ItemMasterMapper.xml
<insert id="addItems">
INSERT INTO item_master(name, price, option) VALUES
<foreach item="item" collection="addItems" separator=",">
(#{item.name}, #{item.price}, #{item.option})
</foreach>
</insert>
Item.java
public class Item {
private String name;
private long price;
//~~~ Der Setter und der Getter sind unten weggelassen ~~~
}
Warum ist so etwas? ?? Ist es ein Tippfehler mit dem Parameternamen, der im Fehlerinhalt durch "@ Param" angegeben ist? Oder ist mein Batis zu alt, um Bulk-Einsätze zu tragen? Ich habe nur nach der Fehlermeldung gegoogelt.
Wenn Sie genauer hinschauen, ist Option
in der Klasse Item
nicht definiert.
Item.java
public class Item {
private String name;
private long price;
//↓ Dies fehlte
private String option;
//~~~ Der Setter und der Getter sind unten weggelassen ~~~
}
Es besteht eine Diskrepanz zwischen dem in Mapper XML beschriebenen Variablennamen und der Mitgliedsvariablen der tatsächlichen Modellklasse.
Was ist im Tag