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