<,>引起的mybatis异常:元素内容必须由格式正确的字符数据或标记组成

<select id="qryEffSubsUppInstBySubsId"  resultType="com.ztesoft.zsmart.bss.iot.common.dto.SubsUppInst">

        SELECT SUBS_UPP_INST_ID,SUBS_ID,PRICE_PLAN_ID,CREATED_DATE,EFF_DATE,
            EXP_DATE,UPDATE_DATE,STATE,STATE_DATE,PROD_ID,PARENT_SUBS_UPP_INST_ID,
            COMPLETED_DATE,NEED_UPLOAD,PACKAGE_FLAG,AGM_EXP_DATE,SP_ID
            FROM SUBS_UPP_INST WHERE SUBS_ID = #{subsId} 
            AND STATE = 'A'
            AND EFF_DATE <= SYSDATE  AND (EXP_DATE IS NULL OR EXP_DATE > SYSDATE)
            <if test="spId != null">
                 AND SP_ID = #{spId}
            </if>
</select>

这里写图片描述

错误原因:mybatis查询的时候,需要用到运算符 小于号:< 和 大于号: >,在mybatis配置文件里面,这种会被认为是标签,所以解析错误.

解决方法,用

<select id="qryEffSubsUppInstBySubsId"  resultType="com.ztesoft.zsmart.bss.iot.common.dto.SubsUppInst">

        SELECT SUBS_UPP_INST_ID,SUBS_ID,PRICE_PLAN_ID,CREATED_DATE,EFF_DATE,
            EXP_DATE,UPDATE_DATE,STATE,STATE_DATE,PROD_ID,PARENT_SUBS_UPP_INST_ID,
            COMPLETED_DATE,NEED_UPLOAD,PACKAGE_FLAG,AGM_EXP_DATE,SP_ID
            FROM SUBS_UPP_INST WHERE SUBS_ID = #{subsId} 
            AND STATE = 'A'
            <![CDATA[AND EFF_DATE <= SYSDATE  AND (EXP_DATE IS NULL OR EXP_DATE > SYSDATE)]]>
            <if test="spId != null">
                 AND SP_ID = #{spId}
            </if>
</select>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值