gpt4 book ai didi

grails - Grails GORM域类关系

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

Grails 1.1.1
古维1.5.7

在这样的关系中:

作者1-n图书n-1出版商

在Grails中定义:

class Author {        
String firstName
String lastName

static hasMany = [books: Book]

static constraints = {
books(nullable: true)
}
}

class Book {
String title
Author author
Publisher publisher

static constraints = {
author(nullable: true)
publisher(nullable: true)
}
}

class Publisher {

String name

static hasMany = [books: Book]

static constraints = {
books(nullable: true)
}
}

我想用出版商和作者的值加载一本书。
当我收到带有查询的书时:
def book2 = Book.findAllByAuthor(author)

我得到了与助理关联的响应,但发布者在另一个查询中仅具有id和name类:
def book3 = Book.findAllByPublisher(publisher)

我得到相反的结果,我有带出版商数据的书,但作者只有ID和类名。

定义的模型中的错误在哪里? o查询方式有误吗?

编辑:

我需要这样的方式仅使用查询来检索值:
def book2 = Book.findAllByAuthor(author, [fetch:[publisher:'eager']])

在这一本书中,我可以管理发布者的值(value)。

问题:如果出版商的 hasmanyDomain相关,那么让我能够阅读该书的属性是?

谢谢。
谢谢。

最佳答案

默认情况下,懒惰获取与gorm关联一起使用。如果要启用急切获取,可以通过将以下映射块添加到Author域类来修改ORM DSL:

static mapping = {
books lazy:false
}

或者您可以在定义图书关系之后通过添加以下代码来更改域对象中的提取模式。
static fetchMode = [books:"eager"]

对您的Publisher域对象执行相同操作将使您能够完成所需的工作。您确实要注意可能会加载比预期更多的数据的后果。

关于grails - Grails GORM域类关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1839050/

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