Исключение с rownum в mybatis

Ниже приведен мой sql-запрос, который используется в mybatis mapper xml.

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

Я получаю исключение ниже при использовании rownum :

 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.

Ниже я пробовал:

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

Но все же это не работает.


person Community    schedule 19.04.2016    source источник


Ответы (2)


Попробуй это:

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

или ROWNUM &lt;= 15 (с пробелами после ROWNUM и до 15).

person haihui    schedule 19.04.2016
comment
Я использую запрос select eq_id as id, area as eq_area, status,job_no, PLAN_START_TIME, PLAN_END_TIME, CREATE_DATE as systime , ESTIMATED_END_TIME from tab_data where module='BB' <![CDATA[ AND ROWNUM <= 15 ]]>, но он все еще терпит неудачу, есть ли где-нибудь еще в xml, который нуждается в аналогичной обработке, поскольку просто select * from tab_data дает мне результаты успешно, поэтому в коде нет ничего плохого, но я думаю, что что-то не так в sql, написанном внутри картографа. XML - person ; 19.04.2016
comment
Какую базу данных вы используете? - person haihui; 19.04.2016
comment
Оракул. Но спасибо, теперь это работает, возник конфликт из-за формата даты, который я исправил, и rownum отлично работает в соответствии с вашим ответом. - person ; 19.04.2016

Вы уверены, что пробовали &lt; или <![CDATA[ ]]> во всех нужных местах? (кажется, это большой (r) файл, возможно, с несколькими ошибками).

Поскольку в приведенном вами примере кода нет =, а в том, что вы пробовали, вы добавляете =. И ваша ошибка находится в строке 130, столбце 16 вашего файла, и мы видим только 5 строк, а <, похоже, не находится в столбце 16.

Вы можете попробовать использовать: http://www.validome.org/xml/ и посмотреть, весь файл конфигурации действителен?

Вы также можете узнать больше об этом в другом вопросе о переполнении стека: https://stackoverflow.com/a/29136039/244748

person DelGurth    schedule 19.04.2016