2017-06-29 1 views
1

Möchten Sie bestätigen, ist es möglich, eine Entity-Bean zu partiellen Spalten einer Tabelle zu binden?Partielle Entity Binding für Android-Zimmer

Beispiel:

Tabelle "A" Spalte id hat, col1, col2, col3, col4, COL5, ..., col10

Aber ich brauche nur id, col1, col2, so dass ich schaffen eine Entity-Bean mit den Feldern id, col1, col2 und bind nur für diese Felder? Ich habe versucht, dies zu tun, aber bekam:

verursacht durch: java.lang.IllegalStateException: Raum kann die Datenintegrität nicht überprüfen. Sieht so aus, als hättest du das Schema geändert, aber vergessen, die Versionsnummer zu aktualisieren. Sie können das einfach beheben, indem Sie die Versionsnummer erhöhen.

Schätzen Sie, wenn jemand überprüfen kann, ob es möglich ist, die obige Bindung mit der Raumpersistenzbibliothek durchzuführen.

(Anmerkung:. Warum gibt es Spalten in meiner Tabelle, die in dem mobilen App nicht verwendet wird Diese Tabellen-Schema sind eine exakte Kopie von einigen Tabellen in Server-Seite, damit einige Felder auf Serverseite Webapp verwendet werden)

Antwort

2

Rückkehr Teilmengen von Spalten

die meiste Zeit, müssen Sie nur ein paar Felder eines Unternehmens zu erhalten. Beispielsweise zeigt Ihre Benutzeroberfläche möglicherweise nur einen Vornamen und einen Nachnamen des Benutzers an und nicht jedes Detail des Benutzers . Wenn Sie nur die Spalten abrufen, die auf der Benutzeroberfläche Ihrer App angezeigt werden, sparen Sie wertvolle Ressourcen, und Ihre Abfrage wird schneller abgeschlossen.

https://developer.android.com/topic/libraries/architecture/room.html

können Sie ein Modell definieren, die keine @Entity Annotation hat und es bei Ihnen zu wählen Abfrage verwenden.

// No @Entity annotation here !!! 
public class NameTuple { 
    @ColumnInfo(name="first_name") 
    public String firstName; 

    @ColumnInfo(name="last_name") 
    public String lastName; 
} 

@Dao 
public interface MyDao { 
    @Query("SELECT first_name, last_name FROM user") 
    public List<NameTuple> loadFullName(); 
}