<parameterMap id="orderStatusResult" type="Order"> <parameter property="orderNum" jdbcType="BigInteger"/> <parameter property="bookId" javaType="Integer"/> </parameterMap> <update id="updateOrderStatusThree" parameterMap="orderStatusResult"> update orders o inner join order_detail od on o.order_id = od.order_id set od.status = 3 where o.order_num = #{orderNum} and od.book_id = #{bookId} </update>该语句报错,为什么
时间: 2024-03-18 15:42:57 浏览: 85
ibatis和mybatis的前世今生.txt
该语句报错的原因可能是因为parameterMap中的jdbcType类型和实际传入的参数类型不匹配,或者是参数缺失导致的。请检查以下几个方面:
1. 检查传入的参数类型是否和parameterMap中定义的类型一致,例如orderNum传入的类型是否为BigInteger,bookId传入的类型是否为Integer。
2. 检查SQL语句中的#{orderNum}和#{bookId}是否与parameterMap中定义的属性名一致,大小写是否匹配。
3. 如果以上两个方面都没有问题,可以试着去掉parameterMap,直接在SQL语句中使用#{orderNum,jdbcType=BigInteger}和#{bookId,jdbcType=Integer}来指定参数类型。
希望能够帮到你,如还有问题可以继续提问。
阅读全文