SQLite保存一对多

时间:2012-11-27 16:42:30

标签: android one-to-many ormlite

假设以下数据结构。

    @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;
    }

当我想要保存数据时,我有两个孩子的父母。

如果我执行以下操作:

  parentDao.create(parent);

我有Id的父级和子级为parent_id的子级

如果我这样做

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

我有一个null parent_id和child_id的孩子。

是否有可能以某种方式保存此结构?

1 个答案:

答案 0 :(得分:0)

正确的方法是首先创建parent对象 ,以便ORMLite可以分配自动创建的ID。然后,在使用parent创建child之前,在parent的{​​{1}}字段上设置child。如下所示:

childDao

您还可以使用foreignautocreate,如果没有设置ID,它将自动创建父级。