10

ORMLite Android で一対多の関係を実装するにはどうすればよいですか?

例を見つけてください

public class A {
 private String name;
    @DatabaseField (foreign = true, foreignAutoRefresh = true, columnName = "A")
    private B b;
    @DatabaseField(columnName = "author")
    private String authorName;
}

public class B {
    @DatabaseField(generatedId = true, columnName = "id")
    private long id;
    @DatabaseField(columnName = "name")
    private String name;
    @ForeignCollectionField
    Collection<A> aees;
}

B は A のコレクションを持っています。私は呼び出していますdao.create(b);

b にはすべてのデータがあるため、b の dao を作成します。しかし、テーブル B はデータでのみ作成され、A は作成されません。親切に誰か助けてくれませんか?

4

3 に答える 3

15

b にはすべてのデータがあるため、b の dao を作成します。しかし、テーブル B はデータでのみ作成され、A は作成されません。親切に誰か助けてくれませんか?

右。A以下を使用してアイテムを作成する必要があります。

for (A a : b.aees) {
   aDao.create(a);
}

ORMLite はそれらを自動的に作成しません。

外部コレクションのサンプル プログラムのソース コードを参照してください。

于 2013-07-16T14:16:55.223 に答える
-1

私は同じ問題に直面していました。私のjsonは次のようでした:

{
   "parent":{
            "name":"ABC",
            "children":[
                          {"childName":"1"},
                          {"childName":"2"},
                          {"childName":"3"}
                       ]
             }
}

私は次のように問題を解決しました:

Parent parent = new Parent();
parent.setName("ABC");

while(get children one by one from json data)
{
    childrenArray.add(new Child(its Name));
}

parentDAO.create(parent);

for(Child child : childrenArray)
{
    child.setParent(parent);
    childDAO.create(child);
}
于 2014-06-23T13:04:11.893 に答える