【问题标题】:Escaping underscores in grails criteria LIKE在 grails 标准中转义下划线 LIKE
【发布时间】:2012-09-11 21:09:27
【问题描述】:

我们有一些简单的领域对象,我们正在做类似的陈述。表中的数据通常在此带有下划线。问题是,当在 like 语句中使用时,下划线是 oracle 中的通配符。到目前为止,这是我找到的最接近的部分,但它似乎不太正确。

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。有没有办法避免这种情况,或者有更好的方法来格式化标准?

【问题讨论】:

    标签: hibernate grails criteria


    【解决方案1】:

    一种方法是使用 like 作为 sqlRestriction 并在字符串中添加转义符,如您所见 here

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

    【讨论】:

    • 这很有意义。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多