如何使用 JAXB 注释 Grails 域 类 中的关联?
How do I annotate associations in Grails domain classes with JAXB?
我将 Apache CXF 嵌入到我的 Grails Web 应用程序中,这样我就可以通过 SOAP 公开服务。我还不是很熟悉这个框架,但我认为它能够使用任何 POJO/POGO 作为结果 and/or 参数,它们必须用 JAXB 注释。我创建了一个演示服务,向我证实了这一点。我还从这个关于获取 Groovy and JAXB to play nice 的 Whosebug 问题中获得了一些信息。现在,我的问题特别是关于在 Grails 域 classes 中注释关联。我该怎么做?
如果不可能,我正在考虑为我的 SOAP 服务需要的每个域 class 创建某种相应的 DTO。这可能不是最佳做法,但似乎还不错……是吗?
我了解到可以在 Grails 中声明对域 class 中任何关联的任何引用。例如:
class Book {
static hasMany = [categories: Category]
List categories
}
这允许我像往常一样使用 JAXB 注释来注释声明的字段。
@XmlRootElement
@XmlAccessorType(XmlAccessType.NONE)
class Book {
static hasMany = [categories: Category]
@XmlElementWrapper
@XmlElement(name='category')
List categories
}
我将 Apache CXF 嵌入到我的 Grails Web 应用程序中,这样我就可以通过 SOAP 公开服务。我还不是很熟悉这个框架,但我认为它能够使用任何 POJO/POGO 作为结果 and/or 参数,它们必须用 JAXB 注释。我创建了一个演示服务,向我证实了这一点。我还从这个关于获取 Groovy and JAXB to play nice 的 Whosebug 问题中获得了一些信息。现在,我的问题特别是关于在 Grails 域 classes 中注释关联。我该怎么做?
如果不可能,我正在考虑为我的 SOAP 服务需要的每个域 class 创建某种相应的 DTO。这可能不是最佳做法,但似乎还不错……是吗?
我了解到可以在 Grails 中声明对域 class 中任何关联的任何引用。例如:
class Book {
static hasMany = [categories: Category]
List categories
}
这允许我像往常一样使用 JAXB 注释来注释声明的字段。
@XmlRootElement
@XmlAccessorType(XmlAccessType.NONE)
class Book {
static hasMany = [categories: Category]
@XmlElementWrapper
@XmlElement(name='category')
List categories
}