2013-11-25 2 views
1

У меня есть динамический запрос на мой батис, и мне нужно избежать символа%.escape-символ с использованием mybatis

это часть моего запроса (я пробовал много различных комбинаций)

<choose> 
      <!-- Titulo  -->  
      <when test="titulo != null">        
       lower(p.titulo) like '%'||\||#{titulo}||'%' ESCAPE '\' 

это то, что мне нужно:

select * from publicaciones where titulo like '%/%%' escape '/'; //this works perfect in oracle. 

, что было бы правильным синтаксисом для этого запроса в mybatis ??

+0

вы пытались с помощью & # 37 как знак процента? Я не уверен, где проблема точно так же, как я новичок в mybatis, но как только я разрешил аналогичную проблему с этой подстановкой. http://www.dvteclipse.com/documentation/svlinter/How_to_use_special_characters_in_XML.3F.html – Wolf

ответ

0

Допустим, я хочу написать следующий запрос:
select * from employees where emp_id < 100

The < проблемы вызывают.
У вас есть 2 варианта:
Самый простой способ - использовать код ASCII символа u want.
Это значение ASCII равно 60 (вы можете найти его на here или любой другой таблице ASCII.).
Таким образом, замена '<' будет: '& # (ASCII_VALUE);' что '<'
и я буду писать следующий запрос вместо:
select * from employees where emp_id &#60; 100

другой вариант заключается в использовании CDATA, как показано here
`

<statement id="SelectPersonsByAge" parameterClass="int" resultClass="Person"> 
    <![CDATA[ 
    SELECT * FROM PERSON WHERE AGE > #value# 
    ]]> 
</statement>` 
Смежные вопросы