我有2节课:
@XmlRootElement public class A { private Long id; private B b; // setters and getters }
和
@XmlRootElement public class B { private Long id; private String field1; private String field2; // setters and getters }
默认情况下,如果我改变类的实例A到XML,我将所有的字段(id)和引用B类字段(id,field1,field2)是这样的:
A
id
B
field1
field2
<a> <id>2</id> <b> <id>5</id> <field1>test1</field1> <field2>test3</field2> </b> </a>
是否可以修改引用的类的 哪些 字段B包含在该类的XML中A?例如,我想说的是,当我转换A类的实例时,我只想id从B该类中获取(否field1和field2字段),所以我想要获得:
<a> <id>2</id> <b> <id>5</id> </b> </a>
我并不想永久注释B类(使用@XMLTransient或@XMLElement)来实现它,因为有我在其中要导出整个案件B类的是(与id,field1和field2)。 我只是不想导出所有这些领域时在B类是从引用A。
@XMLTransient
@XMLElement
JAX-B甚至有可能吗?
您可以@XmlTransient在现场使用。同样,默认的JAXB绑定可以根据需要通过使用自定义绑定声明在全局范围内或根据具体情况进行覆盖。
@XmlTransient
请查看Baeldung网站上的JAXB指南,以获取更多示例。