gpt4 book ai didi

xml - Grails:使用 XML 数据绑定(bind)保存嵌套对象

转载 作者:数据小太阳 更新时间:2023-10-29 02:13:20 26 4
gpt4 key购买 nike

我正在 Grails 中创建一个 REST 服务来接受来自 python 脚本的数据。 python 脚本生成对象图的 XML 表示并将其提交给 Controller 。事情对我的平面对象很有效,但我无法弄清楚如何处理域对象包含一组子对象的情况。由于不相关的原因,我的 DOA 层是纯 Java JPA。

例如,我的域类(省略 getters/setters/等):

class Schedule {
String name;
@OneToMany;
HashSet<Step> steps;
}

class Step {
String name;
@ManyToOne;
Schedule schedule;
}

我的 python 脚本生成如下所示的 XML:

<schedule>
<name>Foo</name>
<steps>
<step>
<name>Bar</name>
</step>
<step>
<name>Blatz</name>
</step>
</steps>
</schedule>

在我的 Controller 中我有这个:

def save = {
def schedInstance = new Schedule(params['schedule'])
...
}

steps 属性永远不会被填充。如果我将参数转储到日志中,步骤数据就会全部挤在一起(在我上面的示例中,它将产生步骤:“BarBlatz”

我必须做一些非常错误的事情。我想这是一项常见的任务。我能找到的关于嵌套对象的所有内容都与命令对象有关。如果可以避免的话,我不想在命令对象中复制我的域对象代码。

最佳答案

def save = {
def schedInstance = new Schedule(params['schedule'])
params['schedule?.step'].each{stepXml->
schedInstance.addTo(new step(stepXml)
}
}

未经测试,但我以前做过类似的事情。一有机会测试,我就会根据需要对其进行编辑。

关于xml - Grails:使用 XML 数据绑定(bind)保存嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4048241/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com