如何在Realm数据库中保存数据?我试着写下面的代码。示例:我有一个大小为4的列表。在for循环中,我可以查看此列表中的所有数据,并在执行此方法后 - copyToRealmOrUpdate。
所以,如果我想检查数据库的大小,我看到的大小只有1而不是4.
更有趣的是我在另一个类中使用了这个代码,它运行正常。问题是什么?我禁用了迁移,重写了代码,但我仍然不知道还能做些什么。
try {
realm = Realm.getDefaultInstance();
if (entityList.size() > 0) {
realm.executeTransaction(r -> {
Log.d(LOGS, "SIze Entity list: " + entityList.size());
for (int i = 0; i < entityList.size(); i++) {
DbRealm db = new DbRealm();
db.setFromEntity(entityList.get(i));
Log.d(LOGS, "entityList.get(i): " + entityList.get(i));
Log.d(LOGS, "File: " + entityList.get(i).getFiles());
Log.d(LOGS, "Comment: " + entityList.get(i).getComment());
Log.d(LOGS, "Date: " + entityList.get(i).getDate());
r.copyToRealmOrUpdate(db);
}
});
Log.d(LOGS, "Check FindAll: " + String.valueOf(realm.where(DbRealm.class).findAll().size()));
}
} finally {
if (realm != null) {
realm.close();
}
}
答案 0 :(得分:0)
如果您看到Realm documentation说明以下内容:
更新由相同PrimaryKey标识的现有RealmObject,或者如果找不到现有对象,则创建新副本。
在您的情况下,PrimaryKey是相同的,因此Realm更新数据而不是创建新数据。
所以我建议你在你的DbRealm对象中创建一个PrimaryKey variable,例如,你可以使用&#34; i&#34;变量虽然我不建议你,但试着看看它是你可以使用它的解决方案。