2

繰り返しますが、私はEclipseLink 2.3マーシャリングユースケースを持っていますが、これは非常に些細なことですが、期待どおりに機能していないようです:

プロパティ getX() を定義する抽象基本クラスがあります。このプロパティを継承するこの基本クラスから派生したいくつかの子クラスがあります。

子クラスをマーシャリングすると、このプロパティもすべての子クラスに対してマーシャリングされます。ただし、特定の子クラスについては、このプロパティのマーシャリングを防止したいと考えています。

私は試した:

  1. @Override子クラスのこのプロパティとそれを設定する@XmlTransient
  2. <xml-transient java-property="X">child-class の oxm.xml で指定します。

どちらも役に立たず、プロパティは常にマーシャリングされます - これはどのように機能するはずですか?

4

1 に答える 1

2

さて、これは私がそれを解決した方法です:

抽象基本クラス@XmlTransientを作成します。これにより、すべてのプロパティ/フィールドが子クラスのメンバーとして扱われます。@XmlTransient次に、マーシャリングしたくない子クラスでX をマークしました。

なんらかの理由で、基本クラスのトランジェントを設定できない場合に備えて、これに代わるものがあるかどうか疑問に思っています。

アイデア?

于 2012-01-18T15:14:57.313 に答える