gpt4 book ai didi

xml - Java object graph -> xml 当需要反转对象关联的方向时

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

我正在处理的一个 Java 应用程序具有与下面类似的关系的对象。在实际应用程序中,两个对象都是 JPA 实体。


class Underlying{}

class Thing
{
private Underlying underlying;

public Underlying getUnderlying()
{
return underlying;
}

public void setUnderlying(final Underlying underlying)
{
this.underlying = underlying;
}
}

应用程序中需要创建以下形式的 xml:

<template>
<underlying>
<thing/>
<thing/>
<thing/>
</underlying>
</template>

所以我们有这样一种情况,对象图以与它在 xml 中的表达方式相反的方向表达事物和底层之间的关系。

我希望使用 JAXB 创建 xml,但理想情况下我不想创建新的对象层次结构来反射(reflect) xml 中的关联。有什么方法可以创建实体当前形式所需形式的 xml(通过使用 xml 注释或其他方式)?我没有任何使用 JAXB 的经验,但从我所做的有限研究来看,似乎不可能以任何直接的方式反转关联的方向。任何帮助/建议将不胜感激。建议的另一个选项是使用 XLST 将 xml 转换为正确的格式。到目前为止,我还没有对此主题进行任何研究,但是当我有更多信息时,我会添加到问题中。

谢谢,

马特。

最佳答案

诀窍是让 Underlying 的实例知道 Thing 的相关实例。以下是您可以利用的几种方法。

选项 #1 - 建立双向关系

最简单的做法是建立双向关系。然后您可以利用 EclipseLink JAXB (MOXy) 中的 @XmlInverseReference 扩展.注意:我是 MOXy 技术主管:

选项 #2 - 使用 XmlAdapter

您可以创建 Underlying 的改编版本。在构建适配的底层对象时,XmlAdapter 可以查询 Thing 的实例以填充 things 属性:

关于xml - Java object graph -> xml 当需要反转对象关联的方向时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4646481/

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