0

自己参照フィールドを持つテーブルがあります。

Class Book{

    Integer id
    String name
    Book version
}

「バージョン」なしで書籍を追加すると、バージョン フィールドが null になりました。バージョンを持たないレコード (バージョン フィールドが null) について Book テーブルにクエリを実行する必要があり、次のコードは機能しません。

def results = Book.withCriteria{
    eq("version", "null")
} 

しかし、私はこの例外を受けています:

org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of Book.id

どのクエリを使用すればよいですか?

4

1 に答える 1

3

version楽観的ロックに使用される GORM のキーワードです。domainおよびcriteriaを以下のように変更して、条件が適切な結果を返すようにします。

//ドメイン

class Book {
    Integer id
    String name
    Book bookVersion
}

//基準

def book = new Book(name: "test", version: null)
book.id = 1
book.save(flush: true)

def results = Book.withCriteria{
    isNull("bookVersion")
}

assert results && results[0] instanceof Book

またbookVersion、質問のタイプは でありBook、 と比較することはできませんString null

于 2013-05-21T03:35:28.170 に答える