Ich habe die folgenden drei Klassen:GreenDAO (Android) - Persist Objekt in mehrere Tabellen mit einer Einlage
1) tvshow
@Entity
public class TvShow{
@Id
private String uuid;
private String url;
private String title;
...
@ToMany(referencedJoinProperty = "tvShowUuid")
private List<Episode> episodes;
2) Folge
@Entity
public class Episode{
@Id
private String uuid;
@ToMany(referencedJoinProperty = "episodeUuid")
private List<Moment> moments;
//FK
private String tvShowUuid;
3) Moment
@Entity
public class Moment{
@Id
private String uuid;
...
private String episodeUuid;
Wie Sie die re ziehung zwischen ihnen ist: TvShow --> oneToMany --> Episode --> oneToMany --> Moment
Unter der Annahme, habe ich eine voll bestückte tvshow Objekt (genannt tvshow), mache ich das folgende, das Objekt zu meiner Datenbank hinzuzufügen:
final long rowId = daoSession.getTvShowDao().insertOrReplace(tvShow);
Dies fügt richtig tvshow Objekt die TvShow-Tabelle. , die Episode und Moment Tabellen sind überhaupt nicht bestückt. Das tvShow-Objekt hat mehrere Episoden und jede Episode hat mehrere Momente. Ich habe erwartet, dass die anderen 2 Tabellen auch diese Daten enthalten, aber sie nicht.
Was mache ich falsch? Soll ich jede Episode durchlaufen (und nacheinander durch jeden Moment jeder Episode) und sie stattdessen manuell einfügen? = (
Danke für Ihre Antwort. Das ist der Ansatz, den ich benutzt habe, aber ich lasse die Frage offen, für den Fall, dass jemand einen anderen Ansatz hat. – Tiago
Kannst du mir einen Ratschlag geben, ich habe ein Problem mit dem Fremdschlüssel, in deinem Fall wird Episode nicht ID von TvShow sein, obwohl ich '@ToMany (refededJoinProperty = "tvShowId") '' hinzugefügt habe? – hogar
Öffnen Sie einfach Ihre eigene SO Frage für diesen Kumpel. Ich werde es mir ansehen. – Tiago