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

时间:2012-09-09 22:07:46

标签: java db4o

我遇到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)的列表。

任何帮助将不胜感激。

问候。

1 个答案:

答案 0 :(得分:1)

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

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

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

更新深度2将一直更新到Action对象,包括Action本身(我相信),这样如果您更改已经在Action中的{{1}}列表,它也会更新。请注意,因为将更新深度设置得太高会导致性能问题。