Cof*_*ern 0 search grails list createcriteria
我有一个grails web应用程序的列表功能.此列表将根据某些搜索条件填充表格.我正在使用hibernate createCriteria来尝试实现这一点.
在这种情况下,他们可以搜索2个不同的关键功能.用户名和userNumber.
我唯一的问题是尝试定制函数,以便在找到空值时,它将提示用户其中一个值为null.用户名必须有userNumber.如果由于某种原因userNumber为null,则需要提示用户.或者,如果找不到用户名和userNumber的组合,它也会提示用户.
这是我的列表函数和搜索条件.底部的println用于调试,并显示我想要做的事情.
def list(params) {
//TODO STILL NOT WORKING RIGHT
def userSearchCri = User.createCriteria()
def userNumber = params.searchUserNumber
def username = params.searchUsername
uerSearchCri = User.createCriteria()
def userList = userSearchCri.list() {
eq('username', username)
eq('userNumber', userNumber)
}
System.out.println("Search: " + userList.userNumber)
if(userList.userNumber == "null"){
System.out.println("OH NO! The Users Number is = " + userList.userNumber + " DO SOMETHING!")
}
[userInstanceList: userList]
}
Run Code Online (Sandbox Code Playgroud)
Iv尝试了createCriteria函数的不同组合.喜欢isNotNull,ilike,等...我开始认为我无法用createCritera做到这一点.这是用于createCriteria http://grails.org/doc/2.2.1/ref/Domain%20Classes/createCriteria.html的源代码.
如果有人知道我如何能够实现我的目标,要么使用搜索条件,要么使用其他方法.我非常感谢一些建议.
谢谢
各种要点:
params
,看看是否userName
ANS /或
userNumber
通过后,ANS发回信息给用户提供有效的信息.通过这种方式,您可以根除用户输入错误的选项.userName/userNumber
.userName/userNumber
每个用户对象.这是一个示例:
def list(params) {
def userNumber = params.searchUserNumber
def username = params.searchUsername
//Validate whteher params are NULL or valid. Send back error message to user if validation fails
validateParams()
uerSearchCri = User.createCriteria()
def userList = userSearchCri.list() {
or{
eq('username', username)
eq('userNumber', userNumber)
}
}
if(userList){
userList.each{user->
if(!user.userName || !user.userNumber){
//Send error back if needed
}
}
}
}
Run Code Online (Sandbox Code Playgroud)