Grails 获取子域对象

2024-01-30

我有两个域类,一个是父域类,另一个是子域类,它们之间有一个 hasMany 关系。父类有很多子类,子类属于父类。 这是编码示例。

class Parent{
   String name
    static hasMany = [childs:Child] 
    static constraints = {
   }
}


class Child{
   String name
   static belongsTo = [parent:Parent]
   static constraints={}
}

问题是,一旦我获取父对象,与父类关联的子对象也被获取。但是当我将对象转换为 JSON 时,我看不到完全的子对象,我只能看到子对象的 ID。我想查看子对象的所有列,而不仅仅是 Id。

转换后的 JSON 响应:

[{"class":"project.Parent","id":1,
  "name":"name1","childs":[{"class":"Child","id":1},{"class":"Review","id":2}]}]

但我想要包含子对象名称的响应,如下所示

[{"class":"project.Parent","id":1,"name":"name1",
  "childs":[{"class":"Child","id":1,"name":"childname1"},
            {"class":"Review","id":2,"name":"childname2"}
           ]
}]

非常感谢任何帮助。 提前致谢。


问题在于使用默认 JSON 转换器。以下是您的选择:

 1. Default  -  all fields, shallow associations
    a. render blah as JSON

 2. Global deep converter - change all JSON converters to use deep association traversal
    a. grails.converters.json.default.deep = true

 3. Named config marshaller using provided or custom converters
    a. JSON.createNamedConfig('deep'){
        it.registerObjectMarshaller( new DeepDomainClassMarshaller(...) )
    }
    b. JSON.use('deep'){
        render blah as JSON
    }

 4. Custom Class specific closure marshaller 
    a. JSON.registerObjectMarshaller(MyClass){ return map of properties}
    b. render myClassInstance as JSON

 5. Custom controller based closure to generate a map of properties
    a. convert(object){
        return map of properties
    }
    b. render convert(blah) as JSON

您当前使用的是默认选项 1。

您可以做的最简单的事情是使用选项 2 设置全局深度转换器,但请注意这会影响应用程序中的所有域类。这意味着,如果您有一个大型关联树,最终形成一个顶级对象,并且您尝试转换这些顶级对象的列表,则深度转换器将执行所有查询以获取所有关联对象及其关联对象转动。 -您可以一次性加载整个数据库:) 当心。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Grails 获取子域对象 的相关文章

  • 从 php 到 JavaScript 的数组

    我正在尝试使用 json 将数组列表从 php 传输到 javascript 但它不起作用 JS ajax url getProfilePhotos php type post post or get method data if you
  • Jackson 将单个项目反序列化到列表中

    我正在尝试使用一项服务 该服务为我提供了一个带有数组字段的实体 id 23233 items name item 1 name item 2 但是 当数组包含单个项目时 将返回该项目本身 而不是包含一个元素的数组 id 43567 item
  • SQL查询json字典数据

    我的表中的 CLOB 字段包含 JSON 如下所示 a value1 b value2 c value3 我正在尝试编写一个 SQL 查询来返回一个包含键和值字段的表 如下所示 key value a value1 b value2 c v
  • 编码:类型错误:write() 参数必须是 str,而不是 bytes

    我对 python 有初步的了解 但不清楚处理二进制编码问题 我正在尝试运行 firefox webextensions 示例中的示例代码 其中 python 脚本发送由 javascript 程序读取的文本 我不断遇到编码错误 蟒蛇代码是
  • 在单行上获取 jq 的输出

    我使用以下输出 https stackoverflow com a 40330344 https stackoverflow com a 40330344 issues key status fields status name assig
  • 类权限不是域类或 GORM 尚未正确初始化或已关闭

    我正在开发一个 Grails 休息应用程序 我使用的grails版本是3 3 1 我正在使用 spring security rest 进行授权 我使用 s2 quickstart 命令创建了以下类 User 权威 用户权限 该应用程序运行
  • CouchDB 通过三个索引键进行查询和过滤

    我目前正在尝试按具有三个值的键进行排序和排序 但让我们从文档结构开始 id DOCIDGOESHERE01 type MESSAGE date 2011 08 24 06 49 02 author USERIDGOESHERE01 rece
  • Java Jackson:反序列化复杂的多态对象模型:JsonMappingException:意外的标记(START_OBJECT),预期的VALUE_STRING

    我有这棵对象树 A B延伸A C延伸B D 延伸 B E延伸C F 扩展 A 并且有一个对 A 的引用 A 有以下注释 JsonTypeInfo use JsonTypeInfo Id CLASS include JsonTypeInfo
  • nvd3 格式化日期始终返回 1970-01-01

    我正在尝试使用构建折线图nvd3 for d3js但我在 x 轴上使用日期域时遇到了一些问题 这是我的代码 data lineChart key key1 values x 2014 04 20 y 6 x 2014 04 13 y 5 x
  • Wiremock:如何匹配没有特定属性的 JSON 请求?

    我正在尝试模拟一个在 POST 中接受 JSON 正文的 API 调用 它有两种可能的响应 如果身体含有SearchCenter属性 回答 A 如果正文不包含SearchCenter 回答B In the 请求匹配 http wiremoc
  • 如何在 JSFiddle 中链接外部 json 文件?

    我有一个很长的 json 文件country json name WORLD population 6916183000 name More developed regions population 1240935000 name Less
  • AJAX:检查字符串是否为 JSON?

    我的 JavaScript 有时会在这一行崩溃 var json eval this responseText 当争论时会导致崩溃eval 不是 JSON 在进行此调用之前有什么方法可以检查字符串是否为 JSON 我不想使用框架 有什么方法
  • 简单、安全的API认证系统

    我有一个简单的 REST JSON API 供其他网站 应用程序访问我网站的一些数据库 通过 PHP 网关 基本上该服务的工作原理如下 调用 example com fruit orange 服务器返回有关橙子的 JSON 信息 问题是 我
  • 告诉 GORM 不要保留属性

    有没有办法告诉 GORM 不要保留某个属性 我计划在我的 User 类上定义一个确认密码属性 我将使用它进行验证 但不应保留 使用瞬态关键字 GORM 可以指示不保留特定属性 以下代码片段显示了瞬态属性的使用 class Book stat
  • 如何修复 jq 扁平化 JSON 数组的重复输出

    我正在尝试使用 jq 命令压平 JSON 文件 但输出是重复的 请在这里查看我的jqplay https jqplay org s gwvMIH fed https jqplay org s gwvMIH fed 我的输入 JSON cos
  • angularjs - 将对象数组(JSON 数据)发布到 PHP 页面

    我的 JSON 数据的示例如下 scope a email keval gmail permissions upload 1 edit 1 email new aa permissions upload 1 edit 1 我想发布同样的内容
  • Grails:如何在过滤器中使用createLink?

    简短的问题 我该如何使用创建链接 http grails org doc latest ref Tags createLink html createLink在过滤器中 我收到错误 无方法签名 MyFilters createLink 适用
  • 使用 JSON 的 Pentaho HTTP Post

    我是 Pentaho 的新手 我正在尝试执行以下工作流程 从数据库中读取一堆行 做一些转换 将它们以 JSON 格式发布到 REST Web 服务 我已经使用输入步骤和 Json 输出步骤解决了前两个问题 但是 我在执行最后一步时遇到两个问
  • JAVA中遍历JSON数据

    我是 JSON 新手 我使用 HTTPUrlConnections 并在 JAVA 程序中获得一些响应 响应数据将类似于 data id 1 userId 1 name ABC modified 2014 12 04 created 201
  • PHP Json_encode 将空格更改为加号 +

    我有一个网络应用程序 我首先将 JSON 数据存储在 cookie 中 然后每 x 秒保存到数据库 它只是打开与服务器的连接 服务器读取 cookie 它实际上并不通过 POST 或 GET 发送任何内容 当我保存到 cookie 时 我的

随机推荐

  • 循环遍历一个对象并找到非空属性

    我有两个相同对象的实例 o1 和 o2 如果我正在做类似的事情 if o1 property1 null o1 property1 o2 property1 对于对象中的所有属性 循环遍历对象中的所有属性并执行此操作的最有效方法是什么 我看
  • 如何获取 clojure 嵌套结构中给定键的所有值

    def threads values id t1 u uid 1 members values uid 1 uid 2 messages values id m1 u uid 1 id m2 u uid 2 id t2 u uid 12 m
  • dnu 发布 - System.ArgumentNullException:值不能为 null

    当运行以下命令时dnu publish 我抛出一个 ArgumentNullException 异常 dnu publish C Project MyProject out C a configuration Debug runtime d
  • 部分类中的属性未出现在数据源窗口中!

    实体框架已创建所需的部分类 我可以将这些部分类添加到 数据源 窗口 并且属性将按预期显示 但是 如果我在单独的源文件中扩展任何类 即使在构建和刷新之后 这些属性也不会出现在 数据源 窗口中 跨源文件的分部类中的所有属性在 数据源 窗口中按预
  • 按主机名端口重定向到 docker 容器

    我想设置从一台服务器为多个站点提供服务 1 http www example org gt node js www running on port 50000 2 http files example org gt node js file
  • 如何在Android应用程序中制作自定义日历?

    我必须为 android 2 1 2 3 制作一个内置日历控件的应用程序 我曾尝试搜索内置和外部库来实现此目的 但未能成功 因此现在我决定自己编写日历 我想通过GridView 我该怎么办呢 如果有可用的代码 请在此处生成 这确实非常有帮助
  • 对于最新的 Unicode 字符,我应该使用哪种字体?

    注意 它们并不新鲜 只是 不支持 不知何故 我正在尝试为我的网站上的元素制作简单的控件 类似于简单的 静音 或 不静音 控件 但是 我还没有找到任何能够处理较新的 Unicode 符号的字体 例如扬声器符号 x1F507 to x1F50A
  • 我的自定义分类 url 链接的页面未显示 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 基本上我有 newsletter php 页面 其中显示所有现有的自定义帖子 从这里 我有一个下拉类别列表 您可以按类别过滤自定义帖子
  • 函数后加分号

    为什么有些人在大括号后面加分号有什么具体原因吗 void foo 不是真的 那里的分号没有区别 这可能是一个习惯问题 如果您愿意 您可以在 C 11 中添加任意多个分号 void foo
  • Windows 10 中的 Django 通道安装失败

    这是环境 操作系统 Windows 10 姜戈 2 0rc Python 3 6 点 10 0 0 视觉工作室社区 2017 以及错误消息 running build ext building twisted test raiser ext
  • Android 打开 pdf 不起作用

    一段时间以来我一直在努力让它发挥作用 我在这里看到了有关如何从 Android 打开 pdf 的其他问题 普遍的共识是我下面的代码 我错过了什么吗 try Uri path Uri parse android resource com Te
  • 是否可以增加 CloudFlare 超时?

    是否可以增加 CloudFlare 超时 如果是 怎么办 我的代码需要一段时间才能执行 而且我不打算在未来几天对其进行 Ajax 化 不 CloudFlare 仅提供这种服务企业计划定制 https www cloudflare com e
  • 在Perl中,如何根据绝对位置的条件来计算成功匹配的出现次数

    仅使用onePerl替换或匹配正则表达式语句 如何修改以下代码 我需要修改的值 pattern在下面的代码中 代码将计算在字符串中找到成功匹配的次数 前提是成功匹配的绝对位置满足特定条件 pattern F1 string F1234F12
  • .(点) 访问静态方法

    下面是一个流行的代码 class A public static const string TYPE AEvent const string getType return TYPE 上面的代码可以这样使用 if aInstance getT
  • 使用 POST 方法将参数发送到 url,而不使用表单

    我想使用 POST 方法将参数发布到 URL 但无法使用表单 即使我确实使用了表单 它也必须在没有用户交互的情况下自动发布 这可能吗 我怎样才能做到这一点 Using jQuery post http docs jquery com Aja
  • 不再支持 UITextField -webView

    使用某些文本字段时 我得到以下调试输出 UITextField webView 被调用 新的文本架构不再支持此方法 有人可以解释为什么会出现这种情况吗 我目前正在 iOS 7 上运行 XCode 5 在 iOS 7 之前的以前的 iOS 版
  • VLC 流至 MP4 WEBM 和 Flash

    我正在尝试将视频从 IP 摄像机流式传输到我的 WordPress 网站 我希望我的流可以通过常见设备 Windows Mac Android 和 IOS 访问 目前我正在使用 VLC 进行流式传输 但我只能使用 flash 流 但我想做
  • 使用 LINQ 搜索关键字

    如果我有一个包含标题的文本字段 并且有一个关键字列表 我如何搜索标题并检查标题中的 n 个关键字 因此 如果我的标题是 烘焙鸡肉 培根和韭菜派 并且用户搜索 鸡肉培根萝卜 我想返回上述食谱 本质上我想说的是 如果标题包含 2 个或更多搜索词
  • Vuetify V-Data-Table 页脚添加按钮

    我想在 v data table 页脚中添加一个与此图像类似的按钮 问题是 如果表包含数据 我通常可以添加一个按钮 但是 如果没有数据 则该按钮不会呈现 这是代码
  • Grails 获取子域对象

    我有两个域类 一个是父域类 另一个是子域类 它们之间有一个 hasMany 关系 父类有很多子类 子类属于父类 这是编码示例 class Parent String name static hasMany childs Child stat