[英]How can I store an ArrayList field in a Java Berkeley DB?
我在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存储“values数组”。
存储min和max的值,但不存储values数组。
我会为SampleValues类创建一个Proxy
@Persistent(proxyFor = SampleValues.class)
public class SampleValuesProxy implements PersistentProxy<SampleValues>, Serializable {
....
}
实施
initializeProxy
convertProxy
newInstance
将SampleValues类转换为SampleValuesProxy类的实例方法。 在代理中用simple []代替ArrayList。
那么您需要将EntityModel注册为代理
EntityModel model = new AnnotationModel();
model.registerClass(SampleValuesProxy.class);
并将模型放在storeconfig中
那么当berkleydb去存储你的SampleValues对象时,它会将它转换为代理类,并将其写入(反之亦然)
看看课程
com.sleepycat.persist.impl.MapProxy
在berkeleydb源代码分发中有关如何实现它的示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.