Android ORM是否允许直接插入一对多关系?

Android ORM是否允许直接插入一对多关系?,android,sqlite,ormlite,pojo,Android,Sqlite,Ormlite,Pojo,Android上是否有允许插入包含外部字段/集合的POJO的ORM库?因为我发现的那些(Android的ORMLite)通常是这样工作的: 插入父项 将子字段链接到父对象 插入孩子们 更新父项,使其包含这些外部字段 我发现我的代码很难看,必须寻找所有内在的孩子。我只想插入父对象,然后自动添加子对象,这可能吗 我现在要做的就是插入父字段,其中包含尚未插入的外部字段: CategoriesDAO.getInstance().addOrUpdate(categories); for

Android上是否有允许插入包含外部字段/集合的POJO的ORM库?因为我发现的那些(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);
        }
    
    CategoriesDAO.getInstance().addOrUpdate(类别);
    对于(EntityCategories.EntityCategority currentCategory:new ArrayList(categories.getCategories())){
    if(currentCategory.getmPlans()!=null){
    对于(EntityPlan myPlan:new ArrayList(currentCategory.getmPlans())){
    EntityPlan oldPlan=PlanDAO.getInstance().queryById(String.valueOf(myPlan.getmId());
    myPlan.setCategories(当前类别);
    if(oldPlan!=null){
    如果(!myPlan.getmDateModification().equals(oldPlan.getmDateModification())){
    PlanDAO.getInstance().addOrUpdate(myPlan);
    }
    }否则{
    PlanDAO.getInstance().addOrUpdate(myPlan);
    }
    }
    }否则{
    继续;
    }
    LabelDAO.getInstance().addOrUpdate(currentCategory.getmLabel());
    currentCategory.setCategories(类别);
    CategoryDAO.getInstance().addOrUpdate(currentCategory);
    }
    
    查看ONAM(对象嵌套访问管理),一个麻省理工学院授权的库-

    它是Android中sqlite的一个简单ORM/持久性框架。也很轻。支持关系,包括嵌套持久性、查找器方法、事务等


    (自愿披露:我是维护ONAM的团队的一员)

    试试
    Realm
    。它应该按照你想要的方式在那里工作@Jabbar_Jigariyo Realm的问题是,它看起来很难与改造一起使用。。。我将不得不编写一个自定义反序列化程序,一些使用它们的人似乎都有线程问题。事实上,使用带有改进的领域并没有那么痛苦。而且,他们进步如此之快,以至于你在几个月前可能遇到的任何问题都可能已经解决了。我在一个生产应用程序中成功地使用了Realm+改造。@Jabbar_Jigariyo您找到了使用这两个应用程序的好链接吗?我确实想尝试一下,但我很难找到例子。。。我还使用Jackson进行数据绑定,你认为这也需要更改吗?我认为你已经阅读了整个页面:以及Realm github项目中的所有示例应用程序。那肯定会给你一个好的开始。