jaxb marxshalling - xml 中的重复元素

jaxb marxshalling - duplicate elements in the xml

我有两个处于等级关系中的 object。我在 child pojo 中有 setter 方法的 jaxb 映射。将 xml 加载到 pojo 时,我没有遇到任何问题。但是,在生成 xml 时,我在 xml 中看到 pojo object 中同一属性的两个元素条目 - 一个带有映射键,另一个带有实际变量名。

示例: //parent class

public class Employee {
    private String name;
    public String getName(){
       return this.name;
    }

    public void setName(String name){
       this.name=name;
    }

}

//second class 
@XmlRootElement(name = "teacher")
public class Teacher extends Employee {

    @Override
    public String getName(){
       return super.getName();
    }

    @Override
    @XmlElement(name ="NAME")
    public void setName(String name){
       super.setname(name)
    }

}
//xml out put I get is
// like this
<teacher>
    <name>John Doe<name/>
    <NAME>John Doe</NAME>
</teacher>

我该如何解决这个问题?我只想要带钥匙的那个 - NAME

您可以执行以下任一操作:

  1. Emoloyee class 上的 name 属性 标记为 @XmlTransient
  2. Employee class 标记为 @XmlTransient 以将其删除为映射 class。
  3. Teacher class 中删除 name 属性 并用 @XmlElement 注释在 Employee 上注释。