2017-05-26 5 views
0

Ich versuche, zwei gleiche Struktur Tabellen mit greendao zu erstellen. Also im Grunde mache ich folgendes zu erreichen. Erstellen Position.class:Zwei verschiedene benannte Tabellen mit derselben Struktur (GreenDAO)

public class Position { 

    protected double longitude; 
    protected double latitude; 

    public Position(double longitude, double latitude) { 
     this.longitude = longitude; 
     this.latitude = latitude; 
    } 

    public double getLongitude() { 
     return longitude; 
    } 

    public double getLatitude() { 
     return latitude; 
    } 

Und dann zweite Klasse schaffen CurrentRouePosition.class

@Entity(
     generateConstructors = false, 
     nameInDb = "CURRENT_POSITIONS" 
    ) 
    public class CurrentPosition extends Position{ 

    public CurrentPosition(double longitude, double latitude) { 
     super(longitude, latitude); 
    } 

Leider ist es nicht DAO-Klassen erstellen. Was kann ich tun, um in GreenDAO gleiche Namenstabellen zu erreichen?

Antwort

0

GreenDAO unterstützt Entity-Vererbung ab sofort nicht. Es gibt Ansätze, um etwas Ähnliches zu erreichen, aber sie beinhalten die Verwendung des älteren Generator-Ansatzes (den Sie nicht verwenden sollten). https://github.com/greenrobot/greenDAO/issues/362

Im Allgemeinen sehe ich nicht, warum Sie eine andere Klasse implementieren möchten, die genau die gleiche wie die erste ist. Das einzige, was sich unterscheidet, ist der Zeitpunkt des Einfügens in die Datenbank. Stattdessen würde ich vorschlagen, eine automatische Inkrement-ID zu Ihrer Entität explizit zu definieren. Auf diese Weise können Sie das letzte Ergebnis (= höchste ID) Ihrer DAO-Klasse abfragen, die dann Ihre aktuelle Position wäre.

@Entity 
public class Position { 

    @Id(autoincrement = true) 
    private Long id; 

    protected double longitude; 

    protected double latitude; 
} 

Abfrage aktuelle Position:

Position currentPosition = positionDao.queryBuilder() 
    .orderDesc(PositionDao.Properties.Id).limit(1).unique(); 
Verwandte Themen