mybatis映射器文件转义字符

时间:2014-11-02 20:37:11

标签: mybatis

在sql select语句的mybatis映射器文件中,我无法在表达式中使用特殊字符(< =)。例如(简化选择):

<select id="selectMonday" resultType="SheetGameRec">
    select ColumnName
    from Table
    where ColumnName <= 2
    order by ColumnName;
</select>

生成以下错误

Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: 
### Error building SqlSession.
### The error may exist in Mapper.xml
### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper 

Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance.  Cause: org.xml.sax.SAXParseException; lineNumber: xx; columnNumber: xx; The content of elements must consist of well-formed character data or markup.

如果我将&lt; = with&gt; =或=替换,则映射文件将起作用,尽管这不是我想要的选择。

如何逃脱这些特殊字符。我在其他表达方面遇到了麻烦,例如&amp;同样。我正在使用mybatis 3.0.2。

感谢。

1 个答案:

答案 0 :(得分:8)

您可以使用CDATA来转义特殊字符。

<select id="selectMonday" resultType="SheetGameRec">
    select ColumnName
    from Table
    where ColumnName <![CDATA[ <= 2 ]]>
    order by ColumnName;
</select>