mybatis从mapper中传一个String参数到sqlMapper.xml,运行报错:
1.xml信息
2.报错信息
### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.LinkedHashMap and java.lang.String
### Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.LinkedHashMap and java.lang.String
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
3.解决方法:
因为MyBatis要求如果参数为String的话,不管接口方法的形参是什么,在Mapper.xml中引用时需要改变为_parameter才能识别 :
<select id="selectAuditList" resultMap="OrderAuditVOMap" parameterType="java.lang.String">
SELECT
ooa.audit_id AS auditId,
gu.name AS auditUser,
ooa.order_id AS orderId,
ooa.audit_desc AS auditDesc,
ooa.audit_status AS auditStatus,
ooa.audit_time AS auditTime
FROM ord_order_audit ooa
LEFT JOIN gn_user gu ON ooa.audit_user_id = gu.user_id
<where>
<if test="_parameter != null and _parameter != '' ">
ooa.order_id = #{_parameter}
</if>
</where>
</select>