2017-09-08 1 views
4

Ich habe ein Problem, dass ich keine Dokumentation für mit Room für Android finden kann und den Primärschlüssel automatisch generiert.Android-Zimmer - Primärschlüssel automatisch generieren

Ich habe eine Entity-Klasse bekam, die ein bisschen wie folgt aussieht:

@Entity 
public class Preference { 

    @PrimaryKey(autoGenerate = true) 
    private int id; 

    public void setId(int id) { 

     this.id = id; 

    } 

} 

Dies funktioniert gut, wenn ich die ID manuell eingestellt haben, aber wenn ich nicht setzen den Primärschlüssel Ich bin einen Fehler bezüglich des Primärschlüssels erhalten, der Null ist. Wenn ich mir die automatisch generierte Datei anschaue, kann ich nirgends erkennen, dass der Primärschlüssel automatisch erhöht wird.

Also meine Frage ist das: können Sie automatisch einen Primärschlüssel eines privaten Mitglieds mit einem Setter erzeugen oder müsste ich manuell meinen Schlüssel im Setter erzeugen?

Antwort

4

Okay, also wird dieser Code das ID-Mitglied nicht erzeugen, weil das Mitglied null ist. Ich muss es entweder als Integer-Objekt setzen, in diesem Fall wird automatisch eine neue ID generiert, wenn das Mitglied gleich null ist. oder, ich muss es auf 0 setzen, wenn ich das Objekt initialisiere, das dasselbe tut.

Ich habe es auf einen Integer gesetzt, der mein Problem perfekt behebt.

Verwandte Themen