引起的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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章