我有 2 个 Realm 对象:Unit 和 Subunit。单元对象具有子单元的 Realm 列表。我使用单个 Unit 对象。定期创建一个新的 Subunit 对象并将其添加到 Unit 的列表中,然后我对 Unit 对象调用 copyToRealmOrUpdate。但是,每次我调用 copyToRealmOrUpdate 时,Unit 包含的所有子单元都会再次复制,即使它们已存在于数据库中。这导致我的数据库大小快速增长。 有没有办法只保存每次保存单元对象时添加到列表中的最后一个子单元?谢谢
最佳答案
尝试使用此代码创建新的 Subunit
实例:
realm.beginTransaction();
Unit unit = realm.where(Unit.class)
// write your condition for extracting of Unit object
.equalTo("id", unit_id).findFirst();
if(unit == null){
Log.e(APP_TAG, "Unit " + unit_id + " not found");
realm.cancelTransaction();
return;
}
Subunit subunit = realm.createObject(Subunit.class);
// setup subunit fields
unit.getSubunits().add(subunit);
realm.commitTransaction();
不必每次需要通过特定查询从 Realm 获取此对象时创建 Unit
对象,并将 Subunit
实例直接放入查询对象。
关于java - 如何正确保存包含RealmList的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41681819/