2016-11-30 9 views
0

私は反応したネイティブ領域を使用しています。レルムデータベース削除オブジェクト(子オブジェクトとリストを含む)?

オブジェクトを削除しても、リストは削除されず、アイテムの子オブジェクトと子リストがリストされるようには見えません。すべき?

私はルートオブジェクトのリストを削除する前に、再帰的にリストを反復し、listItemオブジェクトと子リストを削除する必要があります。

私の回避策:

function dbDeleteplan(plan) { 
    if (null == plan) { 
    return; 
    } 
    console.warn('Delete plan:', plan.name); 
    realm.write(() => { 
    console.log('dbg: dbDeleteplan:', plan); 
    if(plan.itemList) { 
     for(let i = 0; i < plan.itemList.length; ++i) { 
     realm.delete(plan.itemList[i].position.coords); 
     realm.delete(plan.itemList[i].position); 
     realm.delete(plan.itemList[i].imageList); 
     realm.delete(plan.itemList[i].itemList); 
     } 
    } 
    realm.delete(plan.itemList); 
    realm.delete(plan); 
    }); 
} 

私は、親オブジェクトの削除が働くだろうと予想が、それはしません:

realm.delete(plan); 

は、レルム内のオブジェクトを削除する正しい方法はありますか?

古いオブジェクトの削除が完了する前に、新しいオブジェクトの作成中に非同期の問題が発生しましたか?事前に

おかげで、

-Ed

+2

レルムは、箱から出して、カスケード削除をサポートしていない、あなたは手動で – EpicPandaForce

+0

を「子」のリストを削除する必要がありますありがとうございます!手動でカスケードする必要もありますか?またはリストのみ? –

+1

技術的には、オブジェクト間の「リンク」を、独立したオブジェクト間のリンクとして考えて、一方から他方へのナビゲーションを可能にします。 – EpicPandaForce

答えて

0

は、このソリューションは、働いていたかもしれません!

realm.objects('plan').filtered('plan==%@', VALUE).addListener((tanplan, changes) => { 

      tanplan.forEach((realmObj,index) => {       
       realm.delete(realmObj);    
      }); 

     }); 
関連する問題