我有 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>2</id>
<b>
<id>5</id>
<field1>test1</field1>
<field2>test3</field2>
</b>
</a>
是否可以修改引用类 B
中的 what 字段包含在 A
类的 XML 中?例如。我想说的是,当我转换 A
类的实例时,我只想从 B
类中获取 id
(没有 field1
和 field2
字段),所以我想得到:
<a>
<id>2</id>
<b>
<id>5</id>
</b>
</a>
我不想永久注释 B
类(使用 @XMLTransient
或 @XMLElement
)来实现它,因为有我想按原样导出整个 B
类的情况(使用 id
、field1
和 field2
。)< br/>
当从 A
引用 B
类时,我只是不想导出所有这些字段。
JAX-B 甚至可以做到这一点吗?
最佳答案
您可以使用注释 @XmlTransient
来忽略字段。将此注释放在字段本身或其 getter 上。
关于java - 排除 JAXB 中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10968522/