gpt4 book ai didi

java - 如何在 Java Berkeley DB 中存储 ArrayList 字段?

转载 作者:行者123 更新时间:2023-12-02 08:11:25 25 4
gpt4 key购买 nike

我在 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 中

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

并将模型放入 storeconfig

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

看类(class)

com.sleepycat.persist.impl.MapProxy

在 berkeleydb 源代码发行版中获取有关如何实现它的示例。

关于java - 如何在 Java Berkeley DB 中存储 ArrayList 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7373508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com