我正在尝试在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加密了。删除我需要查询的字段上的加密修复了问题!
答案 0 :(得分:0)
您在{
"general":
{
"arryname" : "name1",
"value" : {
"size" : "10",
"format" : "L100",
}
}
}
参数中使用String
而不是GString
,因此未评估ilike()
。要使用params.term
,请使用双引号。
GString
还要确保ilike('fullName',"%${params.term}%")
是适合您数据库的通配符(可能是)。