休眠创建标准

时间:2013-04-09 14:47:56

标签: hibernate search grails groovy

所以即时尝试制作搜索功能。我正在使用Hibernates创建标准来尝试完成它。我正在搜索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)
    }
}

这是我迄今为止的搜索功能。它搜索用户名和用户号。几乎没有与用户号码相关联的用户名。如果一个或另一个出现null,那么它需要对我大喊大叫,告诉我一个是空的。我一直在这里查看createCriteria信息http://grails.org/doc/2.2.x/ref/Domain%20Classes/createCriteria.html。它作为if NULL方法。看起来似乎只是搜索null的值。有没有办法可以将其实现到我的搜索中?

if ((ilike('username', '%'+ username) || ilike('number', '%' + number) ) == (isNull('username') || isNull('number')){
        system.out.println("ONE OF THE VALUES IS NULL!")

我想这会像这样工作。 ^但它没有

我对这一切都很陌生。因此,赞赏建设性的批评= D

1 个答案:

答案 0 :(得分:0)

为什么要将这些字符串作为参数提交?你的意思是这样吗?而且,你确定这是一个AND条件?

  

它作为if NULL方法。看起来似乎只是搜索null的值。有没有办法可以将其实现到我的搜索中?

你能改一下吗? (我不明白你想做什么?)