У меня есть 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 включены в XML класса A? Например. Я хочу сказать, что когда я преобразовываю экземпляр класса A, я просто хочу получить id из полей B (no field1 и field2), поэтому хочу получить:
<a>
<id>2</id>
<b>
<id>5</id>
</b>
</a>
Я не хочу постоянно комментировать класс B (используя @XMLTransient или @XMLElement) для его достижения, так как есть случаи, когда я хочу экспортировать весь класс B как есть (с id, field1 и field2.)
Я просто не хочу экспортировать все эти поля, когда класс B ссылается на A.
Возможно ли это с помощью JAX-B?