在我的 Grails 应用程序中,我有两个域 Person 和 County
class Person {
String firstName
String lastName
County county
LocalDate dateOfBirth
static hasMany = [episodes: Episode]
}
class County {
String name
// other stuff...
}
当试图从我的控制器呈现我的人员列表时,我只得到 County { class: County, id: 1 } 而不是 County 的名称。我想要与我的人相关的对象的属性。
def index(Integer max) {
params.max = Math.min(max ?: 10, 100)
respond Person.list(params), model:[personInstanceCount: Person.count()]
}
我不想默认使用深度转换器,然后我的 belongsTo 和 hasMany 关系似乎不起作用。
grails.converters.json.default.deep = true
我已经尝试过使用 customRenderers 但失败了,Grails 并不关心我在那里所做的任何更改。
personRenderer(JsonRenderer, Person) {
excludes = ['class']
}
personsRenderer(JsonCollectionRenderer , Person){
excludes = ['class']
}
countyRenderer(JsonRenderer, County) {
excludes = ['class']
includes = ['name']
}
countiesRenderer(JsonCollectionRenderer , County){
excludes = ['class']
includes = ['name']
}
我已经尝试过与CustomMarshallerRegistrar
上述相同的结果,根本没有任何反应,结果相同。第 8.1.6.2 节http://grails.org/doc/latest/guide/webServices.html#objectMarshallerInterface
那么,如何让我的 Person-objects 包含相关的 County 而不仅仅是 Class 和 ID 属性?
我在 Windows 上使用带有 jdk 1.7 的 Grails 2.3.1