[英]Realm new changes?
我在更新領域有一些問題
那是我的課
public class Cliente extends RealmObject {
@PrimaryKey
private long id;
@Required
private String nombre;
private String apellido;
private String imagen;
private boolean habilitado;
private RealmList<Obra> obras;
並只將此代碼插入
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
Cliente cliente = realm.createObject(Cliente.class);
cliente.setId(1);
cliente.setNombre("Desconocido");
cliente.setApellido("-");
cliente.setHabilitado(true);
realm.copyFromRealm(cliente);
realm.commitTransaction();
realm.close();
好的,您有問題,但是曾經以這種方式在Realm和android上工作
Caused by: io.realm.exceptions.RealmException: 'Cliente' has a primary key, use 'createObject(Class<E>, Object)' instead.
at io.realm.Realm.createObjectInternal(Realm.java:820)
at io.realm.Realm.createObject(Realm.java:801)
at app.obraresuelta.model.Cliente.insertUsuarioDefault(Cliente.java:38)
at app.obraresuelta.PrincipalActivity.onCreate(PrincipalActivity.java:31)
at android.app.Activity.performCreate(Activity.java:6289)
查看消息:
“客戶端”具有主鍵,請改用“ createObject(Class,Object)”。
因此它說您應該使用realm.createObject(Cliente.class, id);
代替。
Realm realm = Realm.getDefaultInstance();
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
Cliente cliente = realm.createObject(Cliente.class, 1);
cliente.setNombre("Desconocido");
cliente.setApellido("-");
cliente.setHabilitado(true);
}
});
realm.close();
您應該將對象創建為普通的Java對象,設置其屬性,然后創建領域對象。
您可以使用copyToRealm函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.