Mybatis : "weniger als" Problem Wählen Sie "Anmerkungen"

Ich bin mit java7, spring 3 und 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>

Während der Verwendung auf Basis einer annotation Auswählen, stieß ich auf seltsame Problem, bei dem unten genannten code warf Ausnahme, die durch die Benutzung der < (dann Weniger), während > (größer) funktioniert wie erwartet.

<script>
SELECT * FROM STUDENT
WHERE DEPARTMENT_ID = #{depId}
<if test='joiningDate != null'> AND STUDENT_ID <= #{joiningDate} </if>
</script>

Nach googeln für eine Weile ich finde, in dieser Frage weiter unten zu berichten.

https://code.google.com/p/mybatis/issues/detail?id=787

Oben genannte Problem kann behoben werden, durch das ersetzen < (weniger als) mit &lt; wie unten gezeigt.

<script>
SELECT * FROM STUDENT
WHERE DEPARTMENT_ID = #{depId}
<if test='joiningDate != null'> AND STUDENT_ID &lt;= #{joiningDate} </if>
</script>

Habe ich auch stieß der Vorschlag für die Verwendung mit CDATA oder ^ in angesehenen Szenarien, die ich noch nicht gegeben, versuchen Sie noch.

Frage:

  • Meine Frage ist, sollte nicht dieses Problem behoben werden, indem Mybatis-team (zumindest xml-spezifische Konvertierung für Häufig verwendete query-tags) oder das Verhalten ist wie erwartet, da sind wir mit <script> tag ??
  • Gibt es eine Alternative Lösung, die ich verpasst habe ?
wenn Sie ersetzen mit &lt; , welcher Fehler tritt auf?
Seine perfekt funktioniert, wie erwähnt oben, aber meine Frage ist, ist das nicht ein zu arbeiten um dann die eigentliche Korrektur ? oder ist es fix ich bin mir nicht bewusst dann über &lt; ?
Das ist die einzige Lösung. In der XML-Datei , die wir immer haben, verwenden Sie die ascii-Werte als &lt; &amp; etc etc. Für Mybatis, da nicht jede Ausnahme von dieser Regel.

InformationsquelleAutor Om. | 2015-03-17

Schreibe einen Kommentar