我已经看过这个Grails get child domain objects但我仍然迷路。grails 3 - 获取子域对象
我已经加入到的conf/application.yml
converters:
encoding: UTF-8
grails.converters.json.default.deep: true
但是,当我在一个域做一个东西,我仍然得到
[〜] $卷曲http://localhost:8080/request/2 { “ID” :2中, “流”:{ “ID”:2}, “release_label”: “ABC_4.3”, “DATE_CREATED”: “2017-08-21T13:06:27Z”, “ENVS”:[{ “ID” :1}]“status”:“init”}
我想让stream和envs成为e xpanded给所有的记录,而不仅仅是id。
所以请求,Groovy是
而且Stream.groovy是
package test
import grails.rest.*
class Stream {
String name
String feedgroup
String description
UnixGroup unixgroup
String swid
boolean powercentre = false
String latest_release
static hasMany = [envs: Env]
static constraints = {
name blank:false, unique: true
}
}
package test
import grails.rest.*
class Request {
Date date_created = new Date()
Date date_completed
String status = "init"
String release_label
Stream stream
static hasMany = [envs: Env]
static constraints = {
date_completed nullable: true
}
static searchable = {
only = [ 'stream', 'status' ]
}
}
我使用的Grails 3.30。
Grails.converters.json.default.deep仍然适用于Grails 3吗?我该如何使用它。因为你已经在grails.converters阻止
json.default.deep
:
试过上方,仍处于不完全的儿童信息输出。也试过它作为 json: 默认: 深:真 – John
我设置了几个样本域类似于你提供和测试这个。我在输出中看到孩子信息: 'curl http:// localhost:8080/sample' '{“request”:{“id”:1,“stream”:{“id”:1,“ feedgroup “:” S2" , “名称”: “S1”, “ENVS”:[{ “ID”:1, “标题”: “TITLE1”, “名称”: “ENV1”}]}, “release_label”: “label1的”, “DATE_CREATED”: “2017-08-23T01:39:36Z”, “ENVS”:[{ “ID”:2 “标题”: “标题2”, “名称”: “ENV2”},{ “id”:1,“title”:“title1”,“name”:“env1”}],“date_completed”:null,“status”:“init”}}'也许试试gradle:clean first,发布更多的.yml /代码。 – LeslieV
嗨LeslieV - 感谢您为此付出的努力。我再次清理并运行应用程序,结果仍然相同。 application.yml的其他部分对此有影响吗? 我不能认为我在做什么不同于自己。我没有在域中使用@Resource,但生成了控制器。所以我注意到你的curl使用应用程序名称,而我使用记录类型名称。 – John