Android 如何在领域数据库中保存数据

Android 如何在领域数据库中保存数据,android,realm,Android,Realm,如何在领域数据库中保存数据?我试着写下面的代码。我有一张4号的单子。在for循环中,我可以查看此列表中的所有数据,并且在我执行此方法之后-copyToRealmOrUpdate 因此,如果我想检查数据库的大小,我只看到1的大小,而不是4的大小 更有趣的是,我在另一个类中使用了这段代码,它工作得很好。有什么问题?我禁用了迁移,重写了代码,但我仍然不知道还能做些什么 try { realm = Realm.getDefaultInstance(); i

如何在领域数据库中保存数据?我试着写下面的代码。我有一张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();
            }
        }
试试看{
realm=realm.getDefaultInstance();
如果(entityList.size()>0){
realm.executeTransaction(r->{
d(日志,“大小实体列表:”+entityList.SIze());
对于(int i=0;i
如果您看到以下内容:

更新由同一PrimaryKey标识的现有RealmObject,如果找不到现有对象,则创建新副本

在您的情况下,PrimaryKey是相同的,因此域将更新数据,而不是创建新数据

因此,我建议您在DbRealm对象中创建一个对象,例如,您可以使用“I”变量,尽管我不建议您这样做,但要尝试并确定这是您可以使用的解决方案