苍穹外卖问题:Parameter ‘‘ setmealDishes“not found. Available parameters are [arg0, collection, list]

这是我在学习苍穹外卖时遇到的问题:
引号里面的参数找不到,

原因是:

老版本。Java 编译器会擦除泛型信息,导致在运行时无法获取参数的具体类型和名称。

解决方法:
方法一:
在Mapper中的方法的参数列表前加上@Param("setmealDishes")

    /**
     * 批量保存套餐和菜品的关联关系
     * @param setmealDishes
     */
    void insertBatch(@Param("setmealDishes") List<SetmealDish> setmealDishes);

方法二:
在xml文件中的foreach中把属性collection配置为"setmealDishes"

    <insert id="insertBatch" parameterType="list">
        insert into setmeal_dish
        (setmeal_id,dish_id,name,price,copies)
        values
        <foreach collection="setmealDishes" item="sd" separator=",">
            (#{sd.setmealId},#{sd.dishId},#{sd.name},#{sd.price},#{sd.copies})
        </foreach>
    </insert>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值