可能原因:
该错误提示说明在 MyBatis 的映射文件中找不到名为 shoppingCart
的属性的 getter 方法。
MyBatis 在映射实体类与数据库表之间进行映射时,会依赖于实体类中属性的 getter 和 setter 方法来访问和设置属性的值。
在<if>条件里面,mybatis默认是使用OGNL去解析参数,因此会自动采取对象树的形式获取参数
可以采用两种方式进行解决:
1.可以使用给定的参数 _parameter 代替我们程序中的参数
mapper.xml代码
<if test="_parameter != null">
user_id = #{userId}
</if>
2.可以在参数中使用注解 @Param("user_id")定义参数
mapper.java代码
List<ShoppingCart> getShoppingCart(@Param("shoppingCart") ShoppingCart shoppingCart);
不管是对象还是属性,都可以加上‘@Param’注解
mapper.xml代码
<if test="shoppingCart.userId != null">
user_id = #{shoppingCart.userId}
</if>