Grails JAXB element list null



我正在使用这个域类:

@XmlRootElement(name="Target")
@XmlAccessorType(XmlAccessType.NONE )
class TargetElement {
    static constraints = {
        testPurpose()
    }
    @XmlAttribute(name="TestPurpose")
    String testPurpose
    // instead of bellow in comment use this 
    @XmlElementWrapper(name = "Bag")
    @XmlElement(name="Child")
    List<Child> bag= new ArrayList<Child>()
    // 1..n Child
    static hasMany = [child:Child]
}

如果我想添加儿童 elem,我使用

def target = new TargetElement(testPurpose:"TestPurpose")
target.getBag().add(child)
target.save(flush:true)
if (target.hasErrors()){
    println '3 ***********' + target.errors
}

但我list == null包。

为什么我的列表为空?它正在为另一个项目工作,只有名称正在更改。可能是我的眼睛少了点什么...

对于谁遇到同样的麻烦:将@XmlElementWrapper值(bag)变为空在我的 Bootstrap.groovy.我必须声明:

ArrayList<Child> bag = new ArrayList<Child>()
bag.add(child1)
bag.add(child2)
targetElement.getBag().addAll(bag)

我也遇到了另一个问题,即 GROM 延迟加载和 JAXB。检查是否检索了嵌套的对象:例如:

static mapping = {
    nested lazy: false
}

希望这会有所帮助

最新更新