好吧我已经尝试了一切我知道自定义呈现与JSON视图的一对多关联,并失败惨败。Grails 3 JSON视图自定义渲染一对多关联
这里是我的机票域的一部分,看起来像(全好这里)...
class TttTicket {
String title
String number
String description
TttUser assignee
String priority
String status
TttUser creator
Date dateCreated
Date lastUpdated
static mappedBy = [subscribers : 'none', creator:'none']
static belongsTo = [project:TttProject, creator:TttUser]
static hasMany = [subscribers: TttUser]
... blar blar
}
这里是我的相关GSON呈现模板...
import ttt_api_server.TttTicket
model {
TttTicket tttTicket
}
json g.render(tttTicket, [excludes:['creator','subscribers','project']]){
creator {
id tttTicket.creator.id
name tttTicket.creator.name
email tttTicket.creator.email
}
project{
id tttTicket.project.id
name tttTicket.project.name
}
}
...这是工作很好,迄今。我想现在限制每个用户的属性输出。
如何旋转这些?例如...
import ttt_api_server.TttTicket
model {
TttTicket tttTicket
}
json g.render(tttTicket, [excludes:['creator','subscribers','project']]){
creator {
id tttTicket.creator.id
name tttTicket.creator.name
email tttTicket.creator.email
}
subscibers g.render(){
tttTicket.subscribers.each {sub ->
return {
name sub.name
}
}
}
project{
id tttTicket.project.id
name tttTicket.project.name
}
}
这似乎没有记录在任何地方。我想控制这个级别的每个用户的JSON输出。不在域级别,因为根据我的JSON要求,我可能需要更改属性输出。
请帮助:-(
顺便说一句 - 我已经建立了一个临时解决方案,其中只包括我需要在订户类上通过它的gson的属性,但这不是渴望d效果。我希望能够在直接对订阅者进行其他调用时保留所有属性,但在对具有多个订阅者的票据进行休息调用时限制属性 – AndyRED