JAXB Unmarshal:将相同的属性值设置为两个模型类属性

时间:2012-08-09 13:32:16

标签: jaxb eclipselink unmarshalling moxy

XML root Element有一个id属性,其值类似于

<Party id="PARTYID_1341592540748_ed044bd3-b8b2-40f9-a679-4daa411ecc45">

在这里,我需要在两个不同的变量中完成PartyId及其中的一部分。我试图像这样实现它:

    @XmlAttribute
    protected String id;// complete partyId

    @XmlTransient
    @XmlAttribute(name="id")
    @XmlJavaTypeAdapter(PartyIdAdapter.class) //has logic to trim full party Id
    protected String partyId; //sub partyId

但我总是为String partyId获取null。

1 个答案:

答案 0 :(得分:0)

我终于在第三个变量的帮助下实现了它:

@Id
    protected Long elementPK;

    protected String completeId;

    @XmlAttribute
    public void setId(String value)
    {
        this.completeId = value; 
        this.elementPK = Long.parseLong(value.split("_")[1]); 
    }

如果你能想出一个优雅的解决方案,请告诉我。