例如,我是父类作者:
class Author {
String name
static hasMany = [
fiction: Book,
nonFiction: Book
]
}
和一个儿童班书:
class Book {
String title
static belongsTo = [author: Author]
}
我使用以下方式为作者完成了一些记录:
def fictBook = new Book(title: "IT")
def nonFictBook = new Book(title: "On Writing: A Memoir of the Craft")
def a = new Author(name: "Stephen King")
.addToFiction(fictBook)
.addToNonFiction(nonFictBook)
.save()
我怎样才能通过孩子的父母和父母类记录找到孩子级记录?
我尝试使用findBy方法,如下所示:
def book = Book.get(1)
def author = Author.findByFiction(book)
但是我收到了一个错误:
Parameter "#2" is not set; SQL statement:
我读过,在某些关系中,findBy被拒绝使用,我如何使用标准或其他方法重写它?
答案 0 :(得分:1)
添加此belongsTo
static belongsTo = [author: Author]
这会触发添加名为author
的{{1}}类型的属性(在编译期间通过AST转换),实际上就像声明
Author
但不要这样做,这是多余的。
因此,如果您有一本书,可以通过该属性访问Author author
:
Author