我有一个带有自引用字段的表:
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
我应该使用什么查询?
答案 0 :(得分: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
进行比较。