gpt4 book ai didi

java - 类内的列表不会在数据库中更新

转载 作者:行者123 更新时间:2023-12-01 15:11:09 24 4
gpt4 key购买 nike

我有一个 db4o 问题,无法修复。我有两个类。

public class Profile {
private String Name;
private List<Action> Actions;

public String getName() {
return Name;
}

public void setName(String Name) {
this.Name = Name;
}

public List<Action> getActions() {
if (Actions == null)
Actions = new ArrayList<Action>();
return Actions;
}
}

还有另一个类。

public class Action {
private String _Name;

public Action(String Name) {
_Name = Name;
}

public String getName() {
return _Name;
}
}

问题是,当我第一次将配置文件存储在 db4o 中时,配置文件和操作列表也保存得很好。当我更新(从操作列表中添加或删除项目)时,它不会反射(reflect)在数据库(db4o)中。

我所做的保存数据只是到 db4o.store(Profile)。我不知道是否必须存储类似 db4o.store(Profile.Actions) 的列表。

如有任何帮助,我们将不胜感激。

问候。

最佳答案

您的更新深度似乎设置不正确。要更新 Profile 类的内部列表,您需要设置具有更高更新深度的配置。请参阅this articlethis article在 db4o 引用资料中。

对于列表,我建议更新深度为 2 或更高。

EmbeddedConfiguration configuration = Db4oEmbedded.newConfiguration();
configuration.common().objectClass(Profile.class).updateDepth(2);

更新深度为 2 将一直更新到 Action 对象,包括 Action 本身(我相信),因此如果您更改 列表中已存在的操作,它也会更新。请小心,因为将更新深度设置得太高可能会导致性能问题。

关于java - 类内的列表不会在数据库中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12343387/

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