Basit bir Realm nesnesini başlatmaya çalışırken bazı garip davranışlar yaşıyorum. Bunun gibi görünen bir JSONArray vardır:Initialize Realm nesnesi @PrimaryKey 0 (sıfır) ikinci nesne üzerinde başarısız olur
[{"id":0,"name":"Biatrix"},{"id":1,"name":"Bill"},{"id":2,"name":"O-ren"}]
Aşağıdaki basit Diyar sınıf var:
val assassins = viperData.getJSONArray("assassins")
for (i in 0..(assassins.length() - 1)) {
val item = assassins.getJSONObject(i)
var assassin = realm.createObject(Assassin::class.java)
assassin.setId(item.getInt("id"))
assassin.setName(item.getString("name"))
}
:
İşte
import io.realm.RealmObject;
import io.realm.annotations.PrimaryKey;
import io.realm.annotations.Required;
public class Assassin extends RealmObject {
@PrimaryKey
private int id;
@Required
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
I (KOTLIN cinsinden) Sınıfı doldurmak deneyin nasıl
Kimlik = 0 olan ilk öğe, iyi oluşturulur, ancak ikinci öğede bir özel durum io.realm.exceptions.RealmPrimaryKeyConstraintException: Value already exists: 0
olsun. Sonra düşündüm ki, nesne yaratıldı pr. default = id = 0 ve sadece afterwords ile değeri başka bir şeye değiştiriyorum.
...
public class Assassin extends RealmObject {
@PrimaryKey
private int id = -1;
...
... ama hala aynı durum almak: o allready yüzden = id set -1 sınıfta değeri 0. olan bir öğeyi vardır çünkü başarısız oluyor.
Bu bir hata mıdır yoksa burada bir şey mi eksik?
Güncelleme Ben @PrimaryKey
ek açıklama ve doğru olarak doldurulmuş sınıf kaldırıldı.
Ne dediğinizi anlıyorum, ancak sorun bu değil. Buradaki sorun, teslim ettiğim "id" değerleri açıkça benzersiz olduğunda, başlatma başarısız oluyor? – Ambran
Eğer başarısız olursa, o zaman benzersiz değildirler. – Wukash
VEYA Gönderiimde önerdiğim gibi bir hata olabilir, çünkü emin olmak için değerleri birkaç kez kontrol ettim ve şüphesiz benzersizler. Güncellemeye bakın. – Ambran