0

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)のように保存する必要があるかどうかはわかりません。

どんな助けでもいただければ幸いです。

よろしく。

4

1 に答える 1

1

更新深度が正しく設定されていないようです。クラスの内部リストを更新するにProfileは、より高い更新深度で構成をセットアップする必要があります。db4o リファレンスのこの記事この記事を参照してください。

の場合はList、更新深度 2 以上をお勧めします。

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

Action更新の深さ 2 は、それ自体を含むオブジェクトまでずっと更新されるActionので (私は信じています)、Action既にリストにあるものを変更すると、それも更新されます。更新の深さを高く設定しすぎると、パフォーマンスの問題が発生する可能性があるため、注意してください。

于 2012-09-10T16:27:04.603 に答える