2016-04-19 21 views
2

Folgendes ist meine SQL-Abfrage, die in mybatis mapper xml verwendet wird.Ausnahme mit rownum in mybatis

<select id="getData" fetchSize="30" resultType="java.util.HashMap" > 
      select * from table 
      where module='AB' 
      and rownum < 15 
</select> 

ich unten Ausnahme bin immer während rownum mit:

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

Unten Dinge, die ich habe versucht:

ROWNUM&lt;=15 AND <![CDATA[ ROWNUM <= 15 ]]> 

Aber noch ist es nicht funktioniert.

Antwort

2

Try this:

<select id="getData" fetchSize="30" resultType="java.util.HashMap" > 
      select * from table 
      where module='AB' 
      <![CDATA[ AND ROWNUM <= 15 ]]> 
</select> 

oder ROWNUM &lt;= 15 (mit Leerzeichen nach ROWNUM und vor 15).

+0

Die Abfrage, die ich verwende, ist 'wählen eq_id als id, Bereich als eq_area, Status, job_no, PLAN_START_TIME, PLAN_END_TIME, CREATE_DATE als systime , \t \t \t ESTIMATED_END_TIME von tab_data \t \t \t wo Modul = 'BB' 'aber es immer noch versagt ist dort wo sonst in xml, die als einfach eine ähnliche Behandlung braucht' select * from tab_data 'gibt mir erfolgreich Ergebnisse, also ist nichts falsch daran Code, aber ich denke, etwas ist falsch in sql geschrieben in mapper.xml –

+0

Welche Datenbank verwenden Sie? – haihui

+0

Oracle. Aber danke, dass es jetzt funktioniert, es gab einen Konflikt aufgrund des Datumsformats, das ich behoben habe und das rownum funktioniert perfekt gemäß deiner Antwort. –

1

Sind Sie sicher, dass Sie die &lt; oder die <![CDATA[ ]]> an den richtigen Stellen probiert haben? (scheint eine große (r) Datei mit vielleicht mehreren Fehlern zu sein).

Da das Codebeispiel, das Sie geben, ohne die = ist und in den Dingen, die Sie versuchten, fügen Sie ein = hinzu. Und Ihr Fehler ist in Zeile 130 Spalte 16 Ihrer Datei, und wir sehen nur 5 Zeilen und die < scheint nicht in Spalte 16.

Sie könnten versuchen zu verwenden: http://www.validome.org/xml/ und sehen, ob die gesamte Konfigurationsdatei ist gültig?

Sie auch mehr über diese auf eine andere Frage auf Stack-Überlauf lesen: https://stackoverflow.com/a/29136039/244748