我已經看過這個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