簡體   English   中英

如何正確保存包含RealmList的對象?

[英]How to properly save object that contains RealmList?

我有2個領域對象:單位和子單位。 單元對象具有子單元的領域列表。 我使用單個Unit對象。 定期創建一個新的Subunit對象,並將其添加到Unit的列表中,然后在Unit對象上調用copyToRealmOrUpdate。 但是,每次我調用copyToRealmOrUpdate時,即使該單元中包含的所有子單元已經存在於數據庫中,也會再次被復制。 這導致我的數據庫大小迅速增加。 有沒有辦法只保存每次保存Unit對象時添加到列表中的最后一個Subunit? 謝謝

嘗試使用以下代碼來創建新的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();

您無需每次都通過特定查詢從領域中獲取此對象並將Subunit實例直接放入查詢對象中,而無需每次創建Unit對象。

  1. 創建一個Unit Object並將其與copyToRealmOrUpdate保存在數據庫中。
  2. 創建新的Subunit ,將其與copyToRealmOrUpdate一起copyToRealmOrUpdate在數據庫中。
  3. 然后,您可以調用已保存在數據庫中的Unit -Object,並使用Unit.getSubunits().add(Subunit)將數據庫中已保存的Subunit添加到數據庫中已保存的Unit中。

您不需要在數據庫中多次保存Unit

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM