已插入领域行但内部没有数据

时间:2016-12-06 03:51:21

标签: android realm

我尝试与Realm合作。 Init Realm还可以,但是当我创建对象并插入(或更新)数据库时,它可能无法正常工作。我检查了一些命令,看到没有更新,只插入行。

这就是我所做的:

Application.class onCreate();

Realm.init(this);
    RealmConfiguration configuration = new RealmConfiguration.Builder()
            .name("MoneySaver.realm")
            .build();
    Realm.setDefaultConfiguration(configuration);

在MainActivity.class onCreate();

realm = Realm.getDefaultInstance();

然后我开始尝试添加新对象

realm.beginTransaction();
                int nextID = (int) (realm.where(Transaction.class).max("id").intValue() + 1);
                Transaction transR = realm.createObject(Transaction.class, nextID);
                transR.setMoney(100000);
                transR.setNote("test realm object");

                realm.commitTransaction();

这是Transaction对象的标题

public class Transaction extends RealmObject{
@PrimaryKey
private int id;
private int category_id;
private int wallet_id;
private String note;
private double money;
private String created_at;

我试着调试一下。在调用commitTransaction()之前和之后,仍未设置所有值

enter image description here

然后我使用Chrome检查数据库。这里没有什么。即使在realm.where(Transaction.class).findAll()我看到了6行。 enter image description here

3 个答案:

答案 0 :(得分:0)

这就是领域的运作方式 您应该向领域添加交易清单

 Transaction transR = new Transaction();

                transR.setMoney(100000);
                transR.setNote("test realm object");


  List<Transaction> transaction = new ArrayList<Transaction>();
               transaction.add(transR);

                  Realm realm = Realm.getDefaultInstance();
                        realm.beginTransaction();

                        realm.copyToRealmOrUpdate(transaction);
                        realm.commitTransaction();
                        realm.close();

检查并告诉我

答案 1 :(得分:0)

我认为你从未真正安装过Stetho-Realm

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        Realm.init(this);

        Stetho.initialize(
                Stetho.newInitializerBuilder(this)
                        .enableDumpapp(Stetho.defaultDumperPluginsProvider(this))
                        .enableWebKitInspector(RealmInspectorModulesProvider.builder(this).build()) // <-- add this
                        .build());
    }
}

答案 2 :(得分:0)

realm.copyToRealmOrUpdate(relamMediaModel)将完成这项工作

尝试

realm.beginTransaction();
    Transaction transR = new Transaction();
            transR.setMoney(100000);
            transR.setNote("test realm object");
    realm.copyToRealmOrUpdate(transR );
    realm.commitTransaction();
    realm.close();