gpt4 book ai didi

grails - 如何不使用Grails从数据库加载hasMany实体

转载 作者:行者123 更新时间:2023-12-02 15:54:51 24 4
gpt4 key购买 nike

我有3节课:

class Author {
static hasMany = [books: Book]
static belongsTo = [company: Company]
String name
}

class Book {
static mapping = {
collection "documents"
id generator: 'assigned',index: true, indexAttributes:[background:true, unique:true, dropDups:true]
}
String id
String name
}

class Company {
static mapping = {
collection "documents"
id generator: 'assigned',index: true, indexAttributes:[background:true, unique:true, dropDups:true]
}
String id
String name
}

我想用
Author author = Author.getByCompanyAndBook(1,1);

但是运行此Grails时,将从数据库中检索所有Book对象。

我只需要这些书作为作者的标识符,而不会使用那些对象。

有没有办法让我强制Grails不要从数据库中获取“帐册和公司”?

我尝试使用:
static mapping = {
books lazy: true
}

但是仍然加载了所有的书籍和公司。

编辑:

我正在使用mongo db作为我的数据库。

最佳答案

这很奇怪-默认情况下集合是惰性的,因此要获得作者,除非您访问books属性,否则不应在books集合中检索任何内容。但是无论如何,即使它按预期工作,我还是建议您避免映射集合。请参阅this talk,它显示了为什么收集会不必要地昂贵,并提供了变通方法以最小化成本。

关于grails - 如何不使用Grails从数据库加载hasMany实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34726599/

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