带有HAL渲染器的Grails中的嵌套实体

时间:2014-09-29 23:00:31

标签: grails

我有grails域类,看起来像这样

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

和另一个像这样的

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

我正在尝试让hal渲染器进行深度渲染。

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

1 个答案:

答案 0 :(得分:0)

这里的问题相同,它似乎是grails中的已知错误(https://jira.grails.org/browse/GRAILS-10954

有一种(不是很好的)解决方法,

@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
    }
}

希望它有所帮助。