圣杯深度 XML 转换

Grail Deep XML Conversion

我最近将一个 Grails 项目升级为使用 1.3.72.4.4 版本。此次升级后,对象的 XML 转换出现问题。

在我的代码中,我将转换器用作:

import grails.converters.XML

def converter = policy as XML
String xml = converter.toString()

我的 Policy.groovy 有以下字段:

String policyNumber
String policyOrigin

static hasMany = [sources:Source, regions:Region]

在 Grails 1.3.7 中,转换后的 XML 具有来自 Policy.groovy 的直接字段以及来自 SourceRegion 对象的字段的标签,但是将 Grails 升级到 2.4.4 后,我看到转换后的 XML 仅具有 Policy.groovy 下直接字段的标签,并且只有源和区域对象的顶级标签,但没有标签来自这些对象的字段。

我什至尝试过 import grails.converters.deep.XML,但没有用。

有谁知道如何从 SourceRegion 对象中获取属性以转换 XML?感谢有关此问题的任何指示。

grails-app\conf\Config.groovy 中设置以下 属性 为我解决了这个问题。

grails.converters.xml.default.deep = true

只是为了添加一些进一步的信息,可以通过设置关闭漂亮打印:

grails.converters.xml.pretty.print = false