2016-04-11 3 views
0

Androidにフィールド/コレクションを含むPOJOを挿入できるORMライブラリがありますか?彼はそれらを含める作るためにAndroid ORMは1対多リレーションシップを直接挿入できますか?

  1. 挿入親
  2. リンク親オブジェクト
  3. 挿入子供
  4. 更新親に子フィールド:それらので、私は(Android用ORMLite)は通常、そのように動作しますました外国のフィールド

私のコードは、すべての内側の子供を求める必要があることがわかりました。私は親を挿入するだけで、子供が自動的に追加されますが、それは可能ですか?

これは私がまだ挿入されていない外国人のフィールドの完全な親挿入するために、今何をすべきかです:

CategoriesDAO.getInstance().addOrUpdate(categories); 

    for (EntityCategories.EntityCategory currentCategory : new ArrayList<>(categories.getCategories())) { 

     if (currentCategory.getmPlans() != null) { 
      for (EntityPlan myPlan : new ArrayList<>(currentCategory.getmPlans())) { 
       EntityPlan oldPlan = PlanDAO.getInstance().queryById(String.valueOf(myPlan.getmId())); 
       myPlan.setCategories(currentCategory); 
       if (oldPlan != null) { 
        if (!myPlan.getmDateModification().equals(oldPlan.getmDateModification())) { 
         PlanDAO.getInstance().addOrUpdate(myPlan); 
        } 
       } else { 
        PlanDAO.getInstance().addOrUpdate(myPlan); 
       } 
      } 

     } else { 
      continue; 
     } 

     LabelDAO.getInstance().addOrUpdate(currentCategory.getmLabel()); 
     currentCategory.setCategories(categories); 
     CategoryDAO.getInstance().addOrUpdate(currentCategory); 
    } 
+0

「Realm」を試してください。それはあなたが望むようにそこで動作するはずです。 https://realm.io/ –

+0

@Jabbar_Jigariyoは、レルムの問題は、それが改修して使用するための痛みになりそうだということです...私はカスタムデシリアライザと、それらの両方を使用して、いくつかの人々を記述する必要がありますスレッドの問題を持っているようです。 – Jaythaking

+0

実際にレトロフィットでレルムを使用するのは苦痛ではありません。また、彼らは非常に速く改良されており、数ヶ月前に直面していた問題がすでに解決されている可能性があります。プロダクションアプリでRealm + Retrofitを使用しています。 –

答えて

0

チェックアウトオナム(オブジェクトネストされたアクセス管理)、MITライセンスのライブラリ - https://github.com/basilgregory/ONAM4Androidを。

それは、AndroidでのsqliteのためのシンプルなORM /永続化フレームワークです。軽量化も。ネストされた永続性、ファインダメソッド、トランザクションなどの関係をサポートします。

(任意の開示:私はONAMを管理するチームの一員です)