0

だから私は検索機能を作ろうとしています。私はHibernates Create Criteriaを使ってそれを成し遂げようとしています。2つの値で検索しています。値の 1 つが 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 になった場合は、一方が 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

4

1 に答える 1