0

我有一个带有自引用字段的表:

Class Book{

    Integer id
    String name
    Book version
}

当我添加没有“版本”的书籍时,版本字段现在为空我必须在 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在 question is of typeBook中,它不能与String null.

于 2013-05-21T03:35:28.170 回答