我想生成一些我可以在BootStrap.groovy中测试的虚拟内容,但是当我有多个关系时,我很难让它工作。
我有3个域类:用户,书籍和作者
用户有很多书。 一位作家有很多书。
我设置如下:
class User {
static hasMany = [books:Book]
}
class Author {
static hasMany = [books:Book]
}
class Book {
static belongsTo = [author:Author, user:User]
}
我想让BootStrap.groovy创建并保存一些书籍,但我无法让它工作。继承人我所拥有的:
def init = { servletContext ->
def u1 = new User(login:"mrx", password:"p", name:"Mr X")
def u2 = new User(login:"mry", password:"p", name:"Mr Y")
def a1 = new Author(name:"Mary Shelley")
def a2 = new Author(name:"Stephen King")
def b1 = new Book(title:"Frankenstein")
def b2 = new Book(title:"The Shining")
def b3 = new Book(title:"Misery")
a1.addToBooks(b1)
a2.addToBooks(b2)
a2.addToBooks(b3)
u1.addToBooks(b1)
u1.addToBooks(b3)
u2.addToBooks(b2)
a1.save()
a2.save()
u1.save()
u2.save()
}
当我查看书籍/索引(这是脚手架并且应该只显示所有书籍的列表)时,我没有收到任何错误,但列表中没有书籍。我做错了什么?
答案 0 :(得分:3)
您似乎没有要添加的Book实例。我通常只使用引用创建实例,而不是使用addTo方法。 E.g。
new Book(author:a1, user:u1, title:'Test', isbn:'test').save()
在BootStrap
之后,关系将会出现