我遇到db4o的问题,我无法修复。 我有2节课。
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中存储时,配置文件和操作列表保存得很好。当我更新(添加或删除操作列表中的项目)时,它不会反映在数据库中(db4o)。
我要做的是保存数据只是为了db4o.store(Profile)。我不知道是否必须存储类似db4o.store(Profile.Actions)的列表。
任何帮助将不胜感激。
问候。
答案 0 :(得分:1)
您的更新深度似乎未正确设置。要更新Profile
类的内部列表,您需要设置具有更高更新深度的配置。请参阅db4o参考中的this article和this article。
对于List
,我建议更新深度为2或更高。
EmbeddedConfiguration configuration = Db4oEmbedded.newConfiguration();
configuration.common().objectClass(Profile.class).updateDepth(2);
更新深度2将一直更新到Action
对象,包括Action
本身(我相信),这样如果您更改已经在Action
中的{{1}}列表,它也会更新。请注意,因为将更新深度设置得太高会导致性能问题。