Java 迈巴蒂斯:“我的朋友。”;少于;选择注释中的问题

Java 迈巴蒂斯:“我的朋友。”;少于;选择注释中的问题,java,spring,mybatis,Java,Spring,Mybatis,我正在使用java7、Spring3和mybatis Pom.xml <org.mybatis-version>3.2.8</org.mybatis-version> <org.mybatis-spring-version>1.2.2</org.mybatis-spring-version> <dependency> <groupId>org.mybatis</groupId> <arti

我正在使用java7、Spring3和mybatis

Pom.xml

<org.mybatis-version>3.2.8</org.mybatis-version>
<org.mybatis-spring-version>1.2.2</org.mybatis-spring-version>

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>${org.mybatis-version}</version>
</dependency>
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>${org.mybatis-spring-version}</version>
</dependency>
我还遇到了一些建议,建议在我尚未尝试过的受人尊敬的场景中使用CDATA或^

问题:

  • 我的问题是,这个问题不应该由Mybatis团队解决(至少对于经常使用的查询标记进行特定于xml的转换)吗?或者,由于我们使用的是
    标记,所以这种行为是预期的吗
  • 是否有我遗漏的其他解决方案
    公平地说,这不是MyBatis中的问题,而是XML解析的行为

    如果您不需要
    
    
    你也可以使用它


    当您将替换为时,会发生什么错误?它的工作原理与上面提到的一样完美,但我的问题是,这不是一个解决方案,然后才是实际的修复方案吗?或者有我不知道的修复方法吗?这是唯一的解决方案。在XML文件中,我们始终必须使用ascii值作为&;等等。对于Mybatis来说,这条规则不会有任何例外。是的。。。。我也相信CDATA是更好的选择,正如我在评论中提到的,CDATA是一种选择。虽然我只是希望Mybatis能在内部解决这个问题。与其他XML解析器不同的是,这一解析器用于用户将要面对的有点可预测的查询。至少有一点是不值得期待的:PI认为这不是在MyBatis中处理它的好方法。在
    中仍然需要解析一些标记,如
    等,目前可能还有更多。更改常见的xml解析行为既不高效也不可扩展。我不是要更改xml行为,而是要在默认情况下添加cdata标记或HTML编码类似于“小于”的字符,您可以执行
    ,或
    =
    ,但不能同时执行这两种操作。
    <script>
    SELECT * FROM STUDENT
    WHERE DEPARTMENT_ID = #{depId}
    <if test='joiningDate != null'> AND STUDENT_ID <= #{joiningDate} </if>
    </script>
    
    <script>
    SELECT * FROM STUDENT
    WHERE DEPARTMENT_ID = #{depId}
    <if test='joiningDate != null'> AND STUDENT_ID &lt;= #{joiningDate} </if>
    </script>
    
    <script>
    SELECT * FROM STUDENT
    WHERE DEPARTMENT_ID = #{depId}
    <if test='joiningDate != null'> 
    <![CDATA[
    AND STUDENT_ID <= #{joiningDate} 
    ]]>
    </if>
    </script>
    
    <script>
    SELECT * FROM STUDENT
    WHERE DEPARTMENT_ID = #{depId}
    <if test='joiningDate != null'> 
    <![CDATA[
    AND STUDENT_ID &gt;= #{joiningDate} 
    ]]>
    </if>
    </script>