私は、ユーザーが自分の犬(1対1の関係)で人を作ることができるAndroidのフォームのサンプルを作成しているので、私は人と犬のモデルを設計しました。オブジェクト)。だから私は彼の犬のAndroidと人物オブジェクトを作成するために、ボタンをクリックしたときには私は、このエラーがスローされます。レルム:レルムオブジェクトを作成(または投稿)するにはどうすればよいですか?
RealmPrimaryKeyConstraintException: Value already exists:
私はレルムを作成するために使用される方法は、オブジェクトcopyToRealm
realm.copyToRealm(persona.getPerro());
realm.copyToRealm(persona);
しかし、研究の後で解決のために私は人々がcopyToRealmOrUpdate
realm.copyToRealmOrUpdate(persona.getPerro());
realm.copyToRealmOrUpdate(persona);
を使用することを見て、私はそれを使用したときに、私のアプリが働いていました。しかし、私はまだ疑問を持っています。私は、copyToRealm
の代わりにcopyToRealmOrUpdate
の代わりにcopyToRealmOrUpdate
を使用することを検討する必要があることを知りたいのですが、今は私がアプリケーション開発で作業しているので、私が使用するDBでRealmを使用したいからです。(そのため、 Realmで作業する方法をテストするためのサンプルです。そのため、オブジェクト間に多くのフィールドと関係を持つアプリケーションを開発する必要があります)。
このエラーが発生する理由(RealmPrimaryKeyConstraintException: Value already exists:
)?
RealmObjectsを作成するにはどうすればよいですか?
PD:私は
copyToRealm or copyToRealmOrUpdate
メソッドを使用するたびに、私は
がintのデフォルト値であるあなたは整数として主キーを持っていると仮定するとbeginTransaction()
と
あなたのPOJOクラスは何ですか? –
このメソッドは、彼らが言うことをかなり行います。 'copyToRealm'は毎回新しいコピーを作成し、' copyToRealmOrUpdate'は既存のオブジェクトがあれば更新します。この動作は再帰的であることに注意してください。主キーを持たないオブジェクトを参照すると、常に再び挿入され、決して更新されません。 –