2016-11-03 6 views
0

Ich beginne zu verwenden Realm - und ich habe eine Menge Fragen.Wie bekomme ich primaryKey für ein neues Objekt in Realm?

Ich will neues Element erstellen:

class Item extends RealmObject { 
    @PrimaryKey 
    int id; 
    // ... 
} 

Jetzt möchte ich neue Artikel erstellen, diese Zeile von Realm-docs: enter image description here

In diesen Beispielen sie Satz 42 für id.

Aber wie in Real Life-Wert für PrimaryKey in neue Item-Objekt zu bekommen?

Antwort

0
public int getNextPrimaryKey(RealmObject ob) { // ob extneds RealmObject 
    int primaryKey = 1; 
    try { 
     primaryKey = realm.where(ob.getClass()).max(Constants.ID).intValue() + 1; 
    } catch (Exception e) { 
     // if table for this item is empty 
    } 
    return primaryKey; 
} 
+1

Das würde funktionieren. Dies wäre effizienter: https://github.com/realm/realm-java/issues/469#issuecomment-182897019 Es gibt auch andere Vorschläge in diesem Problem. –

+0

Das Einrichten der atomaren Ganzzahl ist ein Aufwand, wenn ich ein neues Projekt mache, bei dem ich * IDs aus irgendeinem Grund automatisch inkrementieren muss, würde ich stattdessen diese Lösung verwenden (in einer Transaktion natürlich). – EpicPandaForce

Verwandte Themen