我有一个带有自引用字段的表:
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中用于乐观锁定的关键字。修改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
进行比较。