2016-03-28 13 views
1

Ich versuche DBFlow in meinem Android-Projekt zu implementieren. Ich konnte eine Tabelle erstellen und Zeilen und Spalten hinzufügen. Ich habe zwei Spalten, ID und Namen. Jetzt möchte ich die Namen aus der Tabelle abrufen und in absteigender Reihenfolge nach ID sortieren. Ich fand dieses Beispiel Syntax in Github DBFlow SeiteBestellung in DBFLow

SQLite.select() 
    .from(table) 
    .where() 
    .orderBy(Customer_Table.customer_id, true) 
    .queryList(); 

SQLite.select() 
    .from(table) 
    .where() 
    .orderBy(Customer_Table.customer_id, true) 
    .orderBy(Customer_Table.name, false) 
    .queryList(); 

Aber ich bin nicht in der Lage, unter welchen "Customer_Table.customer_id" bedeutet in diesem Code. Wenn ich versuche, die Methode orderBy() zu setzen, schlägt Android Studio (NameAlias ​​nameAlias, boolean) als Parameter vor. Wie füge ich einen NameAlias ​​meinem Tisch hinzu? Kann mir bitte jemand dabei helfen?

Antwort

0

In "Customer_Table.customer_id" ist Customer_Table der Name der Tabelle und customer_id ist der Spaltenname. Sie können den Namen und die ID aus der Datenbank abrufen und die Datenliste programmgesteuert sortieren oder diese Abfrage verwenden

mDb.query (true, PT_TABLE, neuer String [] {KEY_PID, KEY_NAME}, null, null, null, null, KEY_PID + "DESC", null);

+0

@Table (database = AppDatabase. Klasse) öffentliche Klasse Artikel erweitert BaseModel {....} Ich habe diesen Code verwendet, um Tabelle zu erstellen. Also ist der Tabellenname Artikel? –

+0

Verwenden Sie SQLite.select() .from (Articles.class) .where() .OrderBy (Articles.ID, true) .queryList(); –

+0

Diese Zeile zeigt den Fehler, kann nicht Methode 'OrderBy (int, boolean)' –

0

Wenn Sie DbFlow in Ihrem Projekt implementieren, erstellt es automatisch eine Tabellenklasse für jedes Tabellenmodell, das Sie mit der Annotation @Table kommentiert haben.

Wenn Sie eine Tabelle mit dem Namen Kunde haben, lautet die entsprechende Klasse Customer_Table. Wenn Ihre Tabelle User ist, lautet die entsprechende Klasse User_Table.

Lassen Sie diese Ihre Kundentabelle:

@Table 
public class Customer extends BaseModel { 
    @Column 
    String customer_name; 
} 

Wenn Sie Ihre Ergebnisse mit Kundennamen in Tabelle Kunden zu bestellen, so wie diese,

SQLite.select() 
    .from(table) 
    .where() 
    .orderBy(Customer_Table.customer_name, true) 
    .queryList();