Ich verwende greendao, SQL-Datenbank auf Android zu pflegen. Im Moment stehe ich vor einem Problem, Entity mit zwei Spalten als Primärschlüssel zu generieren. Um klar zu sein, ich habe Spalte1 und Spalte2 beide von ihnen sind Long-Werte und sie bilden zusammen einen Primärschlüssel.GreenDao Primärschlüssel auf mehreren Spalten
Ich versuchte, es als
@Index(unique = true)
private Long column1, column2
zu modellieren, aber es funktioniert nicht. Ich bekomme einzigartige Einschränkung fehlgeschlagen beim Versuch zu einfügen und beim Versuch, inserOrReplace ersetzt einfach basierend auf Spalte1 ID.
Ich konnte Felder zu einzigartigen Einschränkungen hinzufügen, indem Sie Folgendes tun. Für ein Beispiel, in dem eine "Kunden" -Tabelle eine eindeutige Beschränkung sowohl für Vor- als auch Nachnamen haben soll (in der Praxis schlecht, aber nur ein Beispiel), fügen Sie Informationen in die '@ Entity' Annotation (GreenDao 3) wie folgt ein: '@Entity (nameInDb =" Kunde ", indexes = {@Index (Wert =" Vorname, Nachname ", Unique = True)})' –
Dies ist die beste Lösung bisher und es funktioniert perfekt. Greendao Entity Modeling sagt das Gleiche. http://greenrobot.org/greendao/documentation/modelling-entities/#crayon-5949da361cc17011493334 – xrnd