Grails createCriteria不返回任何结果

时间:2015-10-23 15:56:22

标签: grails groovy createcriteria

我正在尝试在grails应用程序中使用createCriteria从数据库返回一些行。我没有得到任何结果。

def query = {
    ilike('fullName','%${params.term}%')
    projections {
        property('id')
        property('fullName')
    }   
}

def plist = Patient.createCriteria().list(query) 
def patientSelectList = []
plist.each {
    def pMap = [:] 
    pMap.put("id", it[0])
    pMap.put("label", it[1])
    pMap.put("value", it[1])
    patientSelectList.add(pMap) 
}

我正在寻找的字段存在,因为以下片段返回结果,但速度非常慢。

def patientList = Patient.getAll()
def patientSelectList = []
patientList.each { patient ->
    if (patient.fullName.toLowerCase().contains(params.term.toLowerCase()) ) {
        def pMap = [:]
        pMap.put("id", patient.id)
        pMap.put("label", patient.fullName)
        patientSelectList.add(pMap)
    }
 }
return patientSelectList

感谢anyhelp

我的Db字段用jasypt加密了。删除我需要查询的字段上的加密修复了问题!

1 个答案:

答案 0 :(得分:0)

您在{ "general": { "arryname" : "name1", "value" : { "size" : "10", "format" : "L100", } } } 参数中使用String而不是GString,因此未评估ilike()。要使用params.term,请使用双引号。

GString

还要确保ilike('fullName',"%${params.term}%") 是适合您数据库的通配符(可能是)。