编组时可以忽略某些元素而不使用@XmlTransient
JAXBContext jc = JAXBContext.newInstance(Customer.class); Marshaller marshaller = jc.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
没有的原因是因为使用xml bean的其他开发人员可能想要编组这些元素。
答案 0 :(得分:0)
如果要从XML中排除某些字段,可以将其值设置为null
null
字段未编组到XML中
示例:强>
DTO:
class Customer
{
private String a;
// getters/setter
}
逻辑:
Customer customerInstance = ...; // some business logic with Customer instance
//... business logic
customerInstance.setA(null); // set null before marshalling
// marshalling
XML中将缺少属性a
答案 1 :(得分:0)
好人,
我认为简单的答案是创建另一类没有那些字段的“客户”模型
class CustomerA{
@XmlElement
private String name;
//@XmlElement // Element that I do not want to keep
//Private Date dob;
}
我需要做的就是将值设置为CustomerA,并且由于java传递了对象的值引用,我只会产生一些引用字节。
我相信这是最便宜,最简单的方式,我可以控制该域名。