2016-04-20 7 views
29

मैं सभी संदेश वस्तु उन दायरे से बराबर हैं हटाने चाहते USERID कोरीयल डेटाबेस डेटाबेस से ऑब्जेक्ट को कैसे हटाएं?

RealmQuery<Message> rowQuery = realm.where(Message.class).equalTo(Message.USER_ID, userId); 
realm.beginTransaction(); 
//TODO : here I want to remove all messages where userId is equal to "9789273498708475" 
realm.commitTransaction(); 

उत्तर

77

0.88.3 में और नीचे आप कर सकते हैं:

realm.executeTransaction(new Realm.Transaction() { 
    @Override 
    public void execute(Realm realm) { 
     RealmResults<Message> rows = realm.where(Message.class).equalTo(Message.USER_ID,userId).findAll(); 
     rows.clear(); 
    } 
}); 

0,89 से (अगली फिल्म) इस deleteAllFromRealm() बजाय हो जाएगा ।

realm.executeTransaction(new Realm.Transaction() { 
    @Override 
    public void execute(Realm realm) { 
     RealmResults<Message> result = realm.where(Message.class).equalTo(Message.USER_ID,userId).findAll(); 
     result.deleteAllFromRealm(); 
    } 
}); 
+2

अगर वहाँ पदावनत '.clear में एक टिप्पणी था बस FYI यह अच्छा होगा()' विधि है कि '.deleteAllFromRealm()' अब उपयोग करने के लिए सही तरीका है। –

+0

@EddieLee यह [0.8 9.0 परिवर्तन लॉग] में है (https://github.com/realm/realm-java/blob/master/CHANGELOG.md#0890) – EpicPandaForce

+0

कल्पना कीजिए कि हमारे पास एक और मॉडल है जिसमें 'RealmList ' । अगर किसी भी तरह से हम पूरी 'संदेश' पंक्तियां हटाते हैं, तो क्या वह उस मॉडल पर भी हटा देता है? (कृपया https://stackoverflow.com/questions/49029813/realm-the-size-of-filled-realmlist-in-realmobject-is-zero) पर एक नज़र डालें –

3

यह realm.beginTransaction() के बीच किया जाना चाहिए; और realm.commitTransaction(); मैंने कोड उदाहरण में कुछ तर्क() भी सूचीबद्ध किए हैं।

realm.beginTransaction(); 
    MessageObject messageobj = realm.where(Message.class) 
          .findFirst() //or 
          .greaterThan("age", 10) // implicit AND 
          .beginGroup() //or you can use 
          .equalTo("name", "Peter") 
          .or() 
          .contains("name", "Jo") 
          .endGroup() 
          .findAll(); 
    messageobj.deleteFromRealm(); 
    realm.commitTransaction(); 
+2

अपने कोड को समझाने के लिए देखभाल करें? – CinCout

+1

'removeFromRealm()' लिखने के लेनदेन में ('beginTransaction() 'और' .commitTransaction() ') – muazhud

+0

के बीच किया जाना चाहिए, जबकि यह कोड प्रश्न का उत्तर दे सकता है, अतिरिक्त [संदर्भ] (https: //meta.stackexchange .com/q/114762) _how_ और/या _why_ के संबंध में यह हल करता है कि समस्या उत्तर के दीर्घकालिक मान में सुधार करेगी। याद रखें कि आप भविष्य में पाठकों के लिए सवाल का जवाब दे रहे हैं, न केवल उस व्यक्ति से पूछ रहे हैं! कृपया एक स्पष्टीकरण जोड़ने के लिए [संपादित करें] (http://stackoverflow.com/posts/41421851/edit) अपना जवाब दें, और संकेत दें कि कौन सी सीमाएं और धारणाएं लागू होती हैं। यह उल्लेख करने में भी कोई दिक्कत नहीं है कि यह उत्तर दूसरों की तुलना में अधिक उचित क्यों है। –

2
इस

मैं कैसे यह प्रयोग किया जाता है

RealmResults<CartDBItems> rows= realm.where(CartDBItems.class).equalTo("id", id).findAll();; 
     rows.deleteAllFromRealm(); 
0
myRealm.beginTransaction(); 

    RealmResults<Datos> datos = myRealm.where(DatosCliente.class) 
         .equalTo("folio",FOLIO) 
         .findAll(); 

datos.deleteAllFromRealm(); 
+0

क्या आप कृपया अपना उत्तर विस्तृत कर सकते हैं और समझा सकते हैं कि यह कोड क्या करता है? यह भविष्य के आगंतुकों के लिए सहायक होगा। –

संबंधित मुद्दे