2014-09-29 94 views
1

我有看起来像这样的嵌套实体与HAL渲染

class Thing { 
    String name 
    static hasMany = [ 
    variants: Variant 
    ] 
} 

,另一个像这样

class Variant { 
    String name 
    static belongsTo = [ 
    thing: Thing 
    ] 
} 

我试图让HAL渲染器Grails领域类做一个深刻的渲染。

这可能吗?我应该如何实现它?

+0

我希望我有答案,因为我一直在想同样的事情。我一直在扩展HalJsonRenderer和HalJsonCollectionRenderer,假设我可以使用一些Reflection来挑选列表然后渲染它们。老实说,我想要将一个子集合呈现为一个url。就像我在博客上收到评论一样,它只会返回像博客/ 1 /评论这样的链接。 – deusprogrammer 2014-10-30 19:11:38

+0

这是什么新东西? ...即时通讯在相同的情况下,不能如何解决它。 – Rafael 2015-03-30 10:01:43

回答

0

这里同样的问题,它似乎是在Grails的(https://jira.grails.org/browse/GRAILS-10954

一个已知的bug有一个(不是很好)的解决方法,

@Transactional(readOnly = true) 
class ProductController extends RestfulController { 
    def halPCollectionRenderer 
    def halPRenderer 

    static responseFormats = ['hal','json'] 

    ProductController() { 
     super(Product) 
    } 

    @PostConstruct 
    void init() { 
     halPCollectionRenderer.mappingContext = mappingContext 
     halPRenderer.mappingContext = mappingContext 
    } 

    MappingContext getMappingContext() { 
     final context = new KeyValueMappingContext("") 
     context.addPersistentEntity(Product) 
     context.addPersistentEntity(Category) 
     return context 
    } 
} 

希望它能帮助。

+0

顺便说一句,这不是我的工作既:( – Rafael 2015-03-27 17:18:29