Jaxb 为什么XStream会忽略@xmltransive?

Jaxb 为什么XStream会忽略@xmltransive?,jaxb,xstream,Jaxb,Xstream,XStream是否默认处理JAXB@XmlTransient属性?XStream似乎忽略了@xmltransive属性&无论如何都要序列化字段 在下面的示例代码中。ExampleClass2正在序列化,尽管我不希望它被序列化。进一步的细节是这些类由OpenJPA填充 XStream代码 XStream _x0 =null; _x = XStreamImpl.getInstance(); _x.toXML(_object) @DataCache @Entity public c

XStream是否默认处理JAXB@XmlTransient属性?XStream似乎忽略了@xmltransive属性&无论如何都要序列化字段

在下面的示例代码中。ExampleClass2正在序列化,尽管我不希望它被序列化。进一步的细节是这些类由OpenJPA填充

XStream代码

 XStream       _x0   =null;
_x = XStreamImpl.getInstance();
_x.toXML(_object)
@DataCache
@Entity
public class ExampleClass implements Serializable {

    private short defaultOption;

    private int primaryKey;

    private short orderId;

    @XmlTransient
    private ExampleClass2 _exampleClass2;

    @XmlTransient
    public ExampleClass2 getTblPpwsCommCfgCombo() {
        return _exampleClass2;
    }

    @XmlTransient
    public void setExampleClass2(ExampleClass2 _exampleClass2) {
        this._exampleClass2 = _exampleClass2;
    }

    public short getDefaultOption() {
        return defaultOption;
    }
    public void setDefaultOption(short defaultOption) {
        this.defaultOption = defaultOption;
    }
    public short getPrimaryKey() {
        return primaryKey;
    }
    public void setPrimaryKey(int primaryKey) {
        this.primaryKey = primaryKey;
    }
    public short getOrderId() {
        return orderId;
    }
    public void setOrderId(short orderId) {
        this.orderId = orderId;
    }
}
我要序列化的类

 XStream       _x0   =null;
_x = XStreamImpl.getInstance();
_x.toXML(_object)
@DataCache
@Entity
public class ExampleClass implements Serializable {

    private short defaultOption;

    private int primaryKey;

    private short orderId;

    @XmlTransient
    private ExampleClass2 _exampleClass2;

    @XmlTransient
    public ExampleClass2 getTblPpwsCommCfgCombo() {
        return _exampleClass2;
    }

    @XmlTransient
    public void setExampleClass2(ExampleClass2 _exampleClass2) {
        this._exampleClass2 = _exampleClass2;
    }

    public short getDefaultOption() {
        return defaultOption;
    }
    public void setDefaultOption(short defaultOption) {
        this.defaultOption = defaultOption;
    }
    public short getPrimaryKey() {
        return primaryKey;
    }
    public void setPrimaryKey(int primaryKey) {
        this.primaryKey = primaryKey;
    }
    public short getOrderId() {
        return orderId;
    }
    public void setOrderId(short orderId) {
        this.orderId = orderId;
    }
}

您可以使用@Transient注释或Transient关键字:

@Transient
private ExampleClass2 _exampleClass2;
~