同様のステートメントを実行しているいくつかの単純なドメイン オブジェクトがあります。表のデータには、この中に下線が含まれていることがよくあります。問題は、アンダースコアが oracle のワイルドカード文字であり、like ステートメントで使用されていることです。これまでのところ、これは私が見つけたクローズピースですが、うまく機能していないようです。
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 句が AND としてタグ付けされているようです。これを回避する方法はありますか、または基準をフォーマットするより良い方法はありますか?