Bonjour à tous,
J'utilise ORMLite dans mon appli, je sais également utiliser les ForeignCollection mais de facon "basique", cad :
- l'objet parent possede une ForeignCollection(eager = true)
- l'objet foreign possede un champ vers le parent tel que :
@DatabaseField(canBeNull = false, foreign = true, foreignAutoRefresh = true)
Le probleme se situe au niveau de l'insertion de la ForeignCollection ; n'ayant pas de constructeur valide pour créer une une foreignCollection vide, j'ai l'impression d'être obligé de passer par la phase :
mDao.assignEmptyForeignCollection(agency, "lesHoraires");
Or :
- ceci implique d'avoir deja inséré le parent en bdd
- pr ensuite créer une ForeignCollectoin vide
- puis la fill
- avec chaque add() correspondant à une entrée en base...
Autant dire que tout cela est TRéS couteux :/
Dans mon application, j'ai des objets contenant une ForeignCollection qui elle même contient une foreignCollection qui elle même contient une foreignColletcion...
Soit "3 niveaux" de ForeignCollection
Et c'est ici que le bas blesse car je me retrouve à insérer chaque objet en base un par un pour pouvoir faire un assignEmptyForeignCollection dessus...
Et niveau perfs c'est monstrueux....
Malheureusement la ForeignCollection ne supporte pas le @DatabaseField(foreignAutoCreate = true)
Par conséquent, connaitriez vous un moyen me permettant de créer mes objets, foreignCollections inclues SANS passer par la phase assignEmptyForeignCollection() et ainsi pouvoir insérer mes objets "tels quels"
Le but etant de n'avoir qu'une unique boucle d'insertion des objets du plus haut niveau (des agences) au sein d'un callBatchTasks
D'avance merci !
Partager