出错了!!!
出错信息:nested exception is org.apache.ibatis.binding.BindingException: Parameter 'name' not found. Available parameters are [dish, now, param1, param2]
解决方法:
使用 @Param
注解(推荐)
@Param
注解,指定参数名称@Param
指定的名称引用参数// Mapper 接口
void updateDishes(@Param("dish") DishDTO dishDTO, @Param("now") LocalDateTime now);
// XML 文件
<if test="dish.name != null">
name = #{dish.name}
</if>
使用 Map 封装参数
// Service 层
Map<String, Object> params = new HashMap<>();
params.put("dish", dishDTO);
params.put("now", LocalDateTime.now());
dishesMapper.updateDishes(params);
// Mapper 接口
void updateDishes(Map<String, Object> params);
@RequestParam
vs @RequestBody
@RequestParam
用于接收 URL 参数(GET 请求)@RequestBody
用于接收 JSON 格式的请求体(POST/PUT 请求)@RequestBody
@Param
,XML 中使用 @Param
指定的名称