今天用mybatis发现以下语句导致程序报错:
- <select id="query" parameterClass="java.util.HashMap"
- resultClass="com.company.cndw.yg.domain.YG02">
- SELECT stacking_no, <!--码单号-->
- rec_create_time, <!--码单日期-->
- stacking_wt <!--码单量-->
- FROM SU.V_MES_SMDF65 WHERE '1'='1'
- <isNotEmpty prepend=" AND " property="stackingStartDate">
- rec_create_time >= #stackingStartDate#
- </isNotEmpty>
- <isNotEmpty prepend=" AND " property="stackingEndDate">
- rec_create_time <= #stackingEndDate#
- </isNotEmpty>
- <dynamic prepend="ORDER BY">
- <isNotEmpty property="orderBy">
- $orderBy$
- </isNotEmpty>
- <isEmpty property="orderBy">
- stacking_no asc
- </isEmpty>
- </dynamic>
- </select>
异常如下:SAXParseException: The content of elements must consist of well-formed character data or markup.
网上搜索之后得到一个匪夷所思的答案:在ibatis的配置文件中不能出现小于号。
于是将代码改为:
- <select id="query" parameterClass="java.util.HashMap"
- resultClass="com.company.cndw.yg.domain.YG02">
- SELECT stacking_no, <!--码单号-->
- rec_create_time, <!--码单日期-->
- stacking_wt <!--码单量-->
- FROM SU.V_MES_SMDF65 WHERE '1'='1'
- <isNotEmpty prepend=" AND " property="stackingStartDate">
- rec_create_time >= #stackingStartDate#
- </isNotEmpty>
- <isNotEmpty prepend=" AND " property="stackingEndDate">
- rec_create_time <![CDATA[<]]>= #stackingEndDate#
- </isNotEmpty>
- <dynamic prepend="ORDER BY">
- <isNotEmpty property="orderBy">
- $orderBy$
- </isNotEmpty>
- <isEmpty property="orderBy">
- stacking_no asc
- </isEmpty>
- </dynamic>
- </select>
问题成功解决了。
转载请注明:观测者 » Mybatis 异常:The content of elements must consist of well-formed character data or markup