我在更新领域有一些问题

那是我的课

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/

10-11 23:30
查看更多