Grails,查询自引用表



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

Class Book{
    Integer id
    String name
    Book version
}

当我添加没有"version"的图书时,版本字段为空现在我必须查询Book表中没有版本的记录(它们的版本字段为null),下面的代码将不起作用:

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

但是我得到了这个异常:

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

我应该使用什么查询?

version是GORM中用于乐观锁定的关键字。修改domaincriteria如下所示,使条件返回适当的结果。

//域

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

还请注意,问题中的bookVersionBook类型,它不能与String null进行比较。

最新更新