Java 如何从JAXB中的封闭元素中获取值
我有以下XML结构:Java 如何从JAXB中的封闭元素中获取值,java,xml-serialization,jaxb,Java,Xml Serialization,Jaxb,我有以下XML结构: <PriceBook> <PriceList product="0D000000.007C.06"> <Price .../> <Price .../> </PriceList> ... </PriceBook> ... PriceList包含Price对象的列表。我不希望Price对象有对其PriceLists的反向引用 问题: 我希望不仅
<PriceBook>
<PriceList product="0D000000.007C.06">
<Price .../>
<Price .../>
</PriceList>
...
</PriceBook>
...
PriceList
包含Price
对象的列表。我不希望Price
对象有对其PriceList
s的反向引用
问题:
我希望不仅在我的
PriceList
对象中设置产品信息,而且在Price
对象中设置产品信息。当然,我不想在XML本身中有这种重复,只想在Java方面。最优雅的方法是什么?您可以利用PriceList
对象上的afterUnmarshal
事件。在这种情况下,您可以迭代Price
对象列表并设置产品信息。您需要将Price
上的产品信息标记为@xmltransive
了解更多信息
PriceList
对象上的afterUnmarshal
事件。在这种情况下,您可以迭代Price
对象列表并设置产品信息。您需要将Price
上的产品信息标记为@xmltransive
了解更多信息
price
对象具有包含priceList
的product
属性,但不希望在封送时显示该属性?能否提供要映射到此XML文档的域对象?product
属性应仅显示在priceList
级别中XML,因为价格表中的所有价格
都属于同一产品
。但是,对于Java端的处理,在Price
上也可以方便地获得这些信息。您希望Price
对象具有包含priceList
的product
属性,但不希望在封送时显示该属性?您能提供要映射到的域对象吗此XML文档?product
属性应仅在XML中的PriceList
级别显示,因为PriceList
中的所有价格都属于同一产品。然而,对于Java端的处理,在Price
s上也有这些信息是很方便的。愚蠢的我,我太专注于用注释来解决这个问题了。谢谢请注意,实际的解决方案是反向的:当在PriceList
中调用afterUnmarshal
时,价格列表还没有设置,但是如果您将afterUnmarshal
放在Price
中,您可以将PriceList
作为父参数。愚蠢的我,我太专注于用注释解决这个问题了。谢谢请注意,实际的解决方案是反向的:在PriceList
中调用afterUnmarshal
时,尚未设置价格列表,但如果将afterUnmarshal
放入Price
,则可以将PriceList
作为父参数。