gpt4 book ai didi

json - grails,在将域列表呈现为JSON时禁用渴望获取

转载 作者:行者123 更新时间:2023-12-02 13:49:32 25 4
gpt4 key购买 nike

模型:

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

class Book{
String name
Author author

static belongsTo = Author
}

然后我有一个 Controller
class MyController{
def authors{
def authors = Author.getAll()
render authors as JSON
}

问题在于,即使关联Author-Books是惰性的,也会执行N + 1查询以热切地获取每个Author的书籍。它会发生什么以及如何禁用它

最佳答案

您正在使用默认的JSON转换器,它将尝试转换模型的所有字段。这就是为什么它要进行所有这些选择。

您应该为模型实现自己的JSON转换器,该转换器不会要求DB提供书籍。您可以在BootStrap中执行以下操作:

import grails.converters.JSON
class BootStrap {
def init = {servletContext ->
JSON.registerObjectMarshaller(Author) {
def returnArray = [:]
returnArray['name'] = it.name
return returnArray
}

}

关于json - grails,在将域列表呈现为JSON时禁用渴望获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9669486/

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