0

次のデータ構造を想定します。

    @DatabaseTable
    public class Parent {

      @DatabaseField(generatedId=true)
      public int id;

      @DatabaseField
      public String name;

      @ForeignCollectionField
      public ForeignCollection<Child> child;
    }

    and the following Child Class.

    @DatabaseTable
    public class Child {

      @DatabaseField(generatedId=true)
      public int id;

      @DatabaseField
      public String name;

      @DatabaseField(foreign = true, foreignAutoRefresh = true)
      public Parent parent;
    }

データを保存したいときまでに、私には2人の子供を持つ親がいます。

私が次のことをした場合:

  parentDao.create(parent);

Idを持つ親とnullのparent_idを持つ子があります

私が行った場合

 childDao.create(child);
 parentDao.create(parent);

nullのparent_idを持つ子と、parent_idを持つ同じ子があります。

この構造をなんとかして保存することは可能ですか?

4

1 に答える 1

0

これを行う正しい方法は、最初parentにオブジェクトを作成して、 ORMLiteが自動作成された ID を割り当てることができるようにすることです。次に、を使用してを作成する前に、のフィールドにを設定します。次のようなものです:parentchildparentchildchildDao

parentDao.create(parent);
child.parent = parent;
childDao.create(child);

ID が設定されていない場合に親を自動的に作成するforeignautocreateを使用することもできます。

于 2012-12-03T01:49:04.210 に答える