2013-11-25 32 views
1

我對我的batis有一個動態查詢,我需要轉義%符號。使用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

<引起問題。
你有2個選擇:
最簡單的就是使用你想要的字符的ASCII碼。
它的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>`