所以我试图做一个搜索功能。我正在使用 Hibernates Create Criteria 来尝试完成它。我按 2 个值搜索。如果其中一个值为 null,那么它将引发异常,如果不是,它将继续在表中显示有关该搜索的所有信息。
def search(params) {
def r = User.createCriteria()
if (params.searchUsername != 'Enter a Username' && params.searchMPI != 'Enter a User Number') {
def number = params.searchNumber
def username = params.searchUsername
r = User.createCriteria()
def userList = r.list(max: params.max, offset: params.usersOffset) {
and {
ilike('username', '%' + username + '%')
ilike('number', '%' + number + '%')
}
order(params.usersSort, params.usersOrder)
}
}
到目前为止,这是我的搜索功能。它搜索用户名和用户编号。几乎必须有一个与用户编号相关联的用户名。如果一个或另一个出现空,那么它需要对我大喊大叫,告诉我一个是空的。我一直在查看这里的 createCriteria 信息http://grails.org/doc/2.2.x/ref/Domain%20Classes/createCriteria.html。它作为一个 if NULL 方法。但是,这似乎只是搜索为空的值。有没有办法可以在我的搜索中实现它?
if ((ilike('username', '%'+ username) || ilike('number', '%' + number) ) == (isNull('username') || isNull('number')){
system.out.println("ONE OF THE VALUES IS NULL!")
我想这会像这样工作。^ 但事实并非如此
我对这一切都很陌生。所以建设性的批评是值得赞赏的=D