2016-04-19 3 views
2

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

<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 ]]> 

Но до сих пор он не работает.

ответ

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).

+0

Запрос, который я использую 'выбрать eq_id в качестве идентификатора, области, как eq_area, статус, job_no, PLAN_START_TIME, PLAN_END_TIME, CREATE_DATE как SysTime , \t \t \t ESTIMATED_END_TIME из tab_data \t \t \t где модуль = 'BB' 'но это еще не удается, есть ли где-либо в XML, который нуждается в аналогичной обработке, как просто' выбрать * из tab_data 'дает мне результаты успешно, поэтому нет ничего плохого в код, но я думаю, что что-то не так в sql, написанном внутри mapper.xml –

+0

В какой базе данных вы используете? – haihui

+0

Oracle. Но благодаря этому теперь работает конфликт, связанный с форматом даты, который я исправил, и rownum отлично работает в соответствии с вашим ответом. –

1

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

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

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

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

Смежные вопросы