2017-02-13 1 views
0

Ich benutze greenDao in meiner App, um komplexe Objekte zu persistieren.GreenDao persistance issue

Zum Beispiel

class A{ 
id; 
name; 
List<B> list; 
} 

class B{ 
id; 
name; 
List<C> list; 
} 

class c{ 
id; 
name; 
} 

bekam ich die Tabellen mit allen Klassenfelder (für alle Klassen).

Problem: Ich kann Datensätze für Tabelle A (für Klasse A) sehen, Tabellen B und C sind leer (keine Datensätze).

I Objekt der Klasse A am persistierenden wie:

A toSave = //class generated by GSON 

aDao = daoService.getADao(); 
aDao.insert(toSave); 

Können Sie mir bitte helfen, dieses Problem zu lösen?

Auch ich kann nicht in der Dokumentation finden, wenn erlaubt ist, DAO-Objekt abzufragen und Objekt der Klasse A mit allen Informationen/Feldern automatisch abzurufen?

danke!

Antwort

-1

Ich habe die Lösung gefunden:

GreenDao nicht in der Lage ist Kaskade Daten bestehen bleiben - Wenn Sie sagen insertOrReplace (tvshow) ist es nicht Liste der Episoden und die Liste der Momente anhalten wird. Um dies zu tun, müssen Sie alle Daten getrennt aufbewahren.

Zum Beispiel:

TvShowDao.save(tvShows) OR TvShowDao.insertOrUpdate(tvShows); 

UND

EpisodesDao.save(episodes) OR EpisodesDao.save(episodes) 

UND

MomentDao.save(moments); OR MomentDao.save(moments); 

Wichtig:

Note that save...() will do 
  • Eine Einfügung für Entitäten, die keine ID haben, und
  • führen eine Aktualisierung für Entitäten durch, für die eine ID festgelegt wurde.

GreenDao Git Issue

Mit anderen Worten, müssen Sie separat alle Daten bestehen bleiben.