ho 2 classi:Escludendo campi in JAXB
@XmlRootElement
public class A {
private Long id;
private B b;
// setters and getters
}
e
@XmlRootElement
public class B {
private Long id;
private String field1;
private String field2;
// setters and getters
}
Per impostazione predefinita, se trasformo un'istanza della classe A
al codice XML, avrò tutti i suoi campi (id
) ed i campi di riferimento B
classe (id
, field1
, field2
) come questo:
<a>
<id>2</id>
<b>
<id>5</id>
<field1>test1</field1>
<field2>test3</field2>
</b>
</a>
È possibile modificare quali campi della classe di riferimento B
sono inclusi nel codice XML della classe A
? Per esempio. Voglio dire che quando trasformo un'istanza della classe A
, voglio solo ottenere id
dal B
Class (senza field1
e field2
campi), quindi voglio ottenere:
<a>
<id>2</id>
<b>
<id>5</id>
</b>
</a>
Non voglio per annotare in modo permanente la classe B
(usando @XMLTransient
o @XMLElement
) per realizzarlo, in quanto vi sono casi in cui voglio esportare tutta la B
classe come è (con id
, field1
e field2
.)
io proprio non si vuole esportare tutti questi campi quando la classe B
è referenziato da A
.
Questo è possibile anche con JAX-B?
Grazie! Immagino che complichi le cose un po 'se sto usando l'implementazione di Glassfish JAXB ... Sembra che non ci sia una soluzione basata su annotazioni e ho bisogno di creare un ulteriore XML di personalizzazione? –