jaxb marxshalling—xml中的重复元素

jaxb marxshalling—xml中的重复元素,jaxb,marshalling,Jaxb,Marshalling,我有两个层次关系中的对象。我在子pojo中有setter方法的jaxb映射。在将xml加载到pojo中时,我没有任何问题。但是,在生成xml时,我在xml中看到了对象pojo中相同属性的两个元素条目——一个带有映射键,另一个带有实际变量名 例如: //父类 public class Employee { private String name; public String getName(){ return this.name; } public

我有两个层次关系中的对象。我在子pojo中有setter方法的jaxb映射。在将xml加载到pojo中时,我没有任何问题。但是,在生成xml时,我在xml中看到了对象pojo中相同属性的两个元素条目——一个带有映射键,另一个带有实际变量名

例如: //父类

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>
我该如何解决这个问题?我只想要一个带有键名的键名,您可以执行以下任一操作:

将Emoloyee类上的name属性标记为@XmlTransient。 将Employee类标记为@XmlTransient以将其作为映射类删除。 从教师类中删除name属性,并使用@XmlElement注释对Employee上的属性进行注释。