我如何存储一个数组列表字段在Java伯克利数据库



我在Java中使用TupleSerialBinding将此结构存储在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的值,但不存储value数组

我将为SampleValues类创建一个代理

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

实现

initializeProxy
convertProxy
newInstance

实例方法将您的SampleValues类转换为SampleValuesProxy类。用一个简单的[]代替代理中的ArrayList

则需要将代理注册为

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

并将模型放入storeconfig

因此,当berkleydb去存储您的SampleValues对象时,它将其转换为代理类,并写入它(读取时反之亦然)

看这个类

com.sleepycat.persist.impl.MapProxy
是如何实现它的示例。

相关内容

  • 没有找到相关文章

最新更新