2016-04-11 67 views
0

Android上有ORM庫允許插入包含外部字段/集合的POJO嗎?因爲這些,我發現(ORMLite用於Android系統)通常工作那樣:Android ORM允許直接插入一對多關係嗎?

  1. 插入父
  2. 鏈路子場父對象
  3. 插入孩子
  4. 更新父讓他有那些外地

我發現我的代碼醜陋不得不尋找所有內心的孩子。我只想插入父母,然後孩子會自動添加,這甚至可能嗎?

這就是我現在做的插入父滿洋場的還未插入:

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

嘗試'領域'。它應該以你想要的方式工作。 https://realm.io/ –

+0

@Jabbar_Jigariyo Realm的問題是它看起來是一個痛苦與改造使用...我將不得不寫一個自定義的反序列化器和一些使用它們的人似乎都有線程問題。 – Jaythaking

+0

事實上,使用Realm進行改造並不是那麼痛苦。此外,他們正在如此迅速地改進,以至於在幾個月前你可能面臨的任何問題可能已經得到解決。我在生產應用程序中成功使用了Realm + Retrofit。 –

回答

0

退房婦女局(嵌套對象訪問管理),麻省理工學院授權的圖書館 - https://github.com/basilgregory/ONAM4Android

這是一個用於Android的sqlite的簡單ORM /持久性框架。輕量級。支持包括嵌套持久性,查找方法,事務等在內的關係。

(自願披露:我是維護ONAM團隊的一部分)