grails的标准

时间:2016-10-10 09:54:43

标签: grails criteria

你能告诉我我的标准中有什么问题吗?

    def users
    def u = User.createCriteria()
    users = u.list (max: max, offset: offset) {

        eq("account",account)

        and {

            if(teacherName != null && teacherName != ""){
                like("userName", "%"+teacherName+"%")

            }

            if(mobileNumber != null && mobileNumber != ""){
                like("mobileNumber", "%"+mobileNumber+"%")

            }

            eq("status", Status.ACTIVE)
            eq("userType","Account Teacher") 
        }


    }
    return users
}

列表返回空为什么?

1 个答案:

答案 0 :(得分:1)

您发布的代码不必要地冗长。等效的实现是:

def users = User.withCriteria(max: max, offset: offset) {

    eq("account", account)

    if (teacherName) {
        like("userName", "%${teacherName}%")
    }

    if (mobileNumber) {
        like("mobileNumber", "%${mobileNumber}%")
    }

    eq("status", Status.ACTIVE)
    eq("userType", "Account Teacher") 
}

我不能说为什么这不起作用,因为我不知道User域类是什么样的,或者查询应该表现出什么样的行为,但它应该更容易调试更简洁的实施。