java - 境界有新变化?

标签 java android realm

我在更新 Realm 时遇到一些问题

那是我的类(class)

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)

最佳答案

查看消息:

'Cliente' has a primary key, use 'createObject(Class, Object)' instead.

所以它说你应该使用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 - 境界有新变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41324744/

相关文章:

java - 是否有一种工具可以根据一组已知的 "used"类来检测未使用的 Java 代码?

java - 使用 hibernate 在 hsqldb 中选择更新

Android - 从 SupportMapFragment 中的 Google map 中删除流量

android - Gradle 同步失败 : Can't load library windows-amd64\native-platform. dll

android - 从 Sqlite 迁移到 Realm (Android)

java - 按字符串数组字段过滤 Realm 结果

ios - 无法加密我的 Realm 数据库

java - 返回嵌套类中内部类的实例

java - 当可扩展棋盘大于 4x4 时,Tic Tac Toe 获胜条件发生变化

android - 在 Android 中创建自定义对话监听器