我在更新领域有一些问题
那是我的课
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 - Realm 新变化?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41324744/