2016-08-03 8 views
2

Während Sqlite als DB in Android verwenden, erstellen viele von uns eine Klasse wie DbConstants, wo wir alle Tabellennamen, Spaltennamen als Konstanten speichern.Alternative für die Beibehaltung separater Konstanten für Feldnamen

Im Fall von Realm DB bereiten wir POJO-Klassen vor, die als Tabellen und Felder als Spaltennamen dargestellt werden.

Gibt es eine Möglichkeit, die ich vermeiden kann, hier eine andere Konstanten-Datei zu erstellen?

Use Case:

POJO darstellt Benutzertabelle:

public class User extends RealmObject { 

private String   name; 
private int    age; 

@Ignore 
private int    sessionId; 

// Standard getters & setters generated by your IDE… 
public String getName() { return name; } 
public void setName(String name) { this.name = name; } 
public int getAge() { return age; } 
public void setAge(int age) { this.age = age; } 
public int getSessionId() { return sessionId; } 
public void setSessionId(int sessionId) { this.sessionId = sessionId;  
} 
} 

so, während wir User-Tabelle abfragen, wie folgt:

RealmResults<User> result = realm.where(User.class) 
           .equalTo("name", "John") 
           .or() 
           .equalTo("name", "Peter") 
           .findAll(); 

Ich will `t anziehen, die Literale wie„ verwenden, Name "hier. Also jede andere elegante Lösung oder Best Practice?

+1

Ihren Einrichter/Getter zeigen an, dass Sie mit Lombok nicht vertraut sind: https://projectlombok.org/features/GetterSetter.html –

+0

@MarcinOrlowski Das POJO kommt direkt aus der Realm-Dokumentation :). Obwohl meine sind nicht anders. Danke für den interessanten Link! – binaryKarmic

Antwort

3

Die übliche Praxis, eine statische letzte Konstante in Ihrer Modellklasse wie dies mit:

public class User extends RealmObject { 
    public static final String NAME = "name"; 
    public static final String AGE = "age"; 

    // Fields, constructors, getters, setters, 
} 

realm.where(Person.class).equalTo(Person.NAME, "John").findAll(); 

Wenn Sie eine automatisierte Art und Weise wollen, es zu tun Sie einen Blick auf nehmen: https://github.com/cmelchior/realmfieldnameshelper

+0

Ich möchte wirklich dieses Hilfsprogramm verwenden, aber es sagt, es funktioniert mit Realm 1.2.0-SNAPSHOT. – binaryKarmic

+0

Ja, das ist richtig. Im Moment funktioniert es nur mit unserer SNAPSHOT-Version. Wir werden Realm 1.1.1 wahrscheinlich heute veröffentlichen. Es wird auch damit arbeiten. –

+0

Daumen drücken !! – binaryKarmic