2012-09-19 44 views
1

我們有一些簡單的領域對象,我們正在做的就像聲明。表格中的數據通常具有下劃線。問題是,在類似聲明中使用時,下劃線是oracle中的通配符。到目前爲止,這是我找到的關閉部分,但似乎並不正確。以grails標準轉義下劃線喜歡

MyDomain{ 
def columnOne 
def columnTwo 
} 

def results = myDomain.createCriteria().list(max:10, offset:10){ 
ilike("columnTwo","%BOB\_%") 
sqlRestriction("ESCAPE \\") 
} 

正在執行的SQL是

select count(*) as y0_ from MY_SCHEMA.MY_DOMAIN this_ where 
lower(this_.COLUMN_TWO) like ? 
and ESCAPE '\' 

看來,sqlRestriction條款被標記上作爲並在查詢。有沒有辦法避免這種情況,還是有更好的方法來格式化標準?

回答

2

一種方法是使用像sqlRestriction一樣的方法,並在字符串中添加轉義,如您所見here

def results = myDomain.createCriteria().list(max:10, offset:10){ 
    sqlRestriction("lower(column_two) like '%bob\_%' ESCAPE '\\' ") 
} 
+0

這非常合理。謝謝! – Joseph