Using @XStreamOmitField in my POJO seems to have no effect whatsoever. the annotated field still gets exposed in the xml or json representation.
@XStreamAlias("Pojo")
@Entity
public class Pojo {
private String name;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long key;
@XStreamOmitField
private String hidden;
public Pojo(String name, String hidden) {
this.name = name;
this.hidden = hidden;
}
}
and in the ServerResource
@Get
public Pojo test() {
Pojo pj= new Pojo("hansi","hinter");
return pj;
}
gets me
<com.myComp.ORMTest.Pojo>
<name>hansi</name>
<hidden>hinter</hidden>
</com.myComp.ORMTest.Pojo>
Any ideas why the annotations are ignored?
You have to tell XStream to explicitly process annotations:
XStream xstream = new XStream();
xstream.processAnnotations(MyClass.class);
Or, you should add this code to tell XStream to process all annotations:
xstream.autodetectAnnotations(true);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With