grails 3 - 获取子域对象

时间:2017-08-21 13:28:43

标签: grails

我看过这个Grails get child domain objects,但我还是迷路了。

我已添加到conf / application.yml

converters:
    encoding: UTF-8
    grails.converters.json.default.deep: true

但是当我进入域名时,我仍然会得到

  

[〜] $ curl http://localhost:8080/request/2   {" ID":2"流" {" ID":2}," release_label":" ABC_4.3& #34;" DATE_CREATED":" 2017-08-21T13:06:27Z"" ENVS":[{" ID&#34 ;: 1}]"状态":"初始化"}

我希望扩展流和envs以提供所有记录,而不仅仅是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仍有效吗?我该如何使用它。

2 个答案:

答案 0 :(得分:1)

我在Grails slack页面上被告知,当应用程序配置文件为rest-api时,不使用转换器。

应该使用JSON视图。在渲染中,添加一个选项deep:true

例如

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

书籍是域名

有关详细信息,请参阅http://views.grails.org/latest/#_rendering_domain_classes

答案 1 :(得分:0)

grails.converters.json.default.deep

应改为:

json.default.deep

因为你已经在grails.converters块中了。

所以看起来应该是这样的:

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