しばらくレルムバージョン0.80で作業していましたが、レルムが自動インクリメント動作をサポートしていないことがわかっていました。
したがって、私はこの回避策でした:レルム内のIDが自動インクリメント動作をサポートするためのカスタムメソッド
public class Item extends RealmObject implements Serializable {
@PrimaryKey
private int id;
private int order;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getOrder() {
return order;
}
public void setOrder(int order) {
id = Increment.Primary_Cart(order); //this line for increment id
this.order = order;
}
をし、これがインクリメントする私の静的メソッドであるID:私は0.90にバージョン0.80.0からレルムをアップグレードすることを決めたまで
public static int Primary_Cart(int id){
if(id>0) {
id_Cart++;
}
return id_Cart;
}
Everytingが正常に動作します。 1。私はこのエラーを持っていた
は次に:
Caused by: io.realm.exceptions.RealmPrimaryKeyConstraintException: Value already exists: 0
より明確にするために、私はレルムを使用してJSONを解析し、いくつかのモデルは、これは私が上記の回避策を使用する理由である、IDを持っている、と私ドンはありませんGSONなどの別のソリューションを使用したい
私は巨大なプロジェクトを持っていたため、レルムだけを使って解析とストレージを行う必要があり、最適化すると思いました。
この例外は、既に使用されている主キーを使用して新しいRealmObjectを作成しようとしていることを意味します。あなたのコードから何が問題なのかを知るのは難しいです。 'id_Cart'はどこから来たのですか?どのようにRealmObjectsを作成しますか? – Emanuelez
** id_Cart **これは** 0 **から始まるローカル変数です。保存された**すべての注文**でインクリメントされますが、これはバージョン0.80.0でうまくいきます。 – Euphor08
同時に問題が発生する可能性があります。 'setOrder()'が呼び出されるソースコードを共有してもらえますか? – beeender