Existe-t-il une bibliothèque ORM sur Android permettant l'insertion de POJO contenant un champ/collection étranger? Parce que ceux que je trouve (ORMLite pour Android) fonctionne habituellement comme ça:Android ORM permettant d'insérer directement une relation à plusieurs?
- Insérer parent
- Link en un champ enfant à l'objet parent
- Insérer les enfants
- Mettre à jour le parent de lui faire inclure les champ étranger
J'ai trouvé mon code moche devoir chercher pour tout l'enfant intérieur. Je voudrais seulement insérer le parent et ensuite l'enfant serait ajouté automatiquement, est-ce possible?
C'est ce que je fais maintenant insérer parent plein de champ étranger non encore inséré:
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);
}
Essayez 'Realm' Cela devrait fonctionner comme vous le voulez. https://realm.io/ –
@Jabbar_Jigariyo Le problème avec Realm est qu'il semble être une peine à utiliser avec Retrofit ... Je devrais écrire un désérialiseur personnalisé et certaines personnes qui les utilisent semblent avoir des problèmes de thread. – Jaythaking
En fait, il n'est pas si douloureux d'utiliser Realm avec rénovation. En outre, ils s'améliorent si rapidement que tout problème que vous pourriez avoir rencontré avant quelques mois a probablement déjà été corrigé. J'utilise Realm + Retrofit avec succès dans une application de production. –