2017-08-21 65 views
0

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

回答

0

有人告訴我在當應用程序配置文件是REST的API轉換器不使用的Grails鬆弛頁面。

應該使用JSON視圖。在渲染,加上深厚的選項:真

json g.render(book, [deep:true]) 

這裏的書是域

如需進一步信息,請參閱http://views.grails.org/latest/#_rendering_domain_classes

0
grails.converters.json.default.deep 

應改爲只。

因此,它應該是這樣的:

converters: 
    encoding: UTF-8 
    json.default.deep: true 
+0

試過上方,仍處於不完全的兒童信息輸出。也試過它作爲 json: 默認: 深:真 – John

+0

我設置了幾個樣本域類似於你提供和測試這個。我在輸出中看到孩子信息: '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

+0

嗨LeslieV - 感謝您爲此付出的努力。我再次清理並運行應用程序,結果仍然相同。 application.yml的其他部分對此有影響嗎? 我不能認爲我在做什麼不同於自己。我沒有在域中使用@Resource,但生成了控制器。所以我注意到你的curl使用應用程序名稱,而我使用記錄類型名稱。 – John