MyBatis sqlMapper.xml 传入String类型参数报错,invalid comparison: java.util.LinkedHashMap and java.lang.Strin

mybatis从mapper中传一个String参数到sqlMapper.xml,运行报错:
1.xml信息
sqlMapper.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>

猜你喜欢

转载自blog.csdn.net/u013719012/article/details/77990179