gpt4 book ai didi

grails - 如何在BootStrap.groovy init中创建具有多个关系的对象

转载 作者:行者123 更新时间:2023-12-02 15:00:55 25 4
gpt4 key购买 nike

我想生成一些可以在BootStrap.groovy中测试的虚拟内容,但是当我有多个关系时,我正努力使其正常工作。

我有3个 Realm 类别:用户,书籍和作者

一个用户有很多书。
作者有很多书。

我将其设置如下:

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()
}

当我查看Book / index(这是一个脚手架,应该只显示所有书籍的列表)时,我没有出现任何错误,但是列表中没有书籍。我究竟做错了什么?

最佳答案

似乎您没有要添加的Book实例。我通常只使用引用创建实例,而不使用addTo方法。例如。

new Book(author:a1, user:u1, title:'Test', isbn:'test').save()

该关系将在BootStrap之后出现

关于grails - 如何在BootStrap.groovy init中创建具有多个关系的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21101903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com