0

TupleSerialBinding を使用して、Java でこの構造を berkeley DB に格納します。

public class SampleValues implements Serializable, MarshalledEntity {
private static final long serialVersionUID = 1L;

    protected double min;
    protected double max;

    protected ArrayList<Double> values = new ArrayList<Double>();
}

キーは、EntryBinding を作成するためにクラスを使用して作成される最小値です。SamplesValues に基づいて EntityBinding を作成した後

TupleSerialBinding を使用して「値の配列」を格納する方法が見つかりませんでした。

min と max の値は保存されますが、values 配列は保存されません。

4

1 に答える 1

2

SampleValues クラスのプロキシを次のように作成します。

@Persistent(proxyFor = SampleValues.class)
public class SampleValuesProxy implements PersistentProxy<SampleValues>, Serializable {
    ....
}

を実装する

initializeProxy
convertProxy
newInstance

インスタンス メソッドを使用して、SampleValues クラスを SampleValuesProxy クラスに変換します。プロキシの ArrayList を単純な [] に置き換えます。

次に、プロキシをEntityModelに登録する必要があります

EntityModel model = new AnnotationModel();
model.registerClass(SampleValuesProxy.class);

モデルをstoreconfigに入れます

そのため、berkleydb が SampleValues オブジェクトを保存するときに、それをプロキシ クラスに変換して書き込みます (逆の場合も同様です)。

クラスを見て

com.sleepycat.persist.impl.MapProxy

実装方法の例については、berkeleydb ソース配布に含まれています。

于 2011-09-10T22:28:34.183 に答える