我有一个JAXB / JPA数据模型,它读取XML,生成JAXB模型并存储到数据库中,数据库中需要一些元素,并且需要存在于XML字符串中。
@Entity
@XmlRootElement(name = "Environment")
public class Environment {
@Id
@XmlAttribute
private String id;
@XmlElement
private String status;
//... more elements, getters/setters etc
}
但是为了从DB读取并生成XML输出,我想从XML字符串中排除一些元素,在我的示例中是status
字段。如何才能做到这一点?排除我知道的元素的唯一方法是用@XmlTransient
注释它们,这在这里不起作用,因为它导致这些元素被排除在输入XML解析之外,因此它们不会被存储进入DB。
@Entity
@XmlRootElement(name = "Environment")
public class Environment {
@Id
@XmlAttribute
private String id;
// This doesnt work for my case
@XmlTransient
private String status;
//... more elements, getters/setters etc
}
所以这两个选项对我来说似乎是互斥的,我可以用其他任何简单的方式实现我的用例吗?或者我是否需要进行一些自定义封送处理?