2016-04-20 5 views

答えて

77

をユーザーIDとあなたが行うことができます以下に等しい:0.89から

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(); 
    } 
}); 

(次のリリース)これは代わりに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

をそれを使用してどのようです現在は正しい方法を使用しています。 –

+0

@EddieLee [0.89.0変更ログ](https://github.com/realm/realm-java/blob/master/CHANGELOG.md#0890)にあります – EpicPandaForce

+0

「RealmList 」という別のモデルがあるとします。 。何らかの形で 'Message'行全体を削除すれば、そのモデルでも削除されますか? (https://stackoverflow.com/questions/49029813/realm-the-size-of-filled-realmlist-in-realmobject-is-zeroをご覧ください) –

3

これは、realm.beginTransaction(); realm.commitTransaction();私はコード例にいくつかのargs()もリストしました。

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

書き込みトランザクションで( '.beginTransaction() 'と' .commitTransaction() ')の間に' removeFromRealm() 'を実行する必要があります。 – muazhud

+0

このコードは質問に答えるかもしれませんが、追加の[context](https://meta.stackexchange .com/q/114762)は、_how_および/または_why_に関する問題を解決し、回答の長期的価値を向上させます。あなたが今質問している人だけでなく、将来読者のための質問に答えていることを忘れないでください!あなたの答えを説明するためにあなたの答えを編集し(http://stackoverflow.com/posts/41421851/edit)、どのような制限や前提が適用されるかを示してください。また、この答えが他のものよりも適切である理由についても言及していません。 –

2

これは私がちょうどFYIその `.deleteAllFromRealm()推奨されていません` .clear() `メソッド`内のコメントがあった場合、それはいいだろう

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

あなたの答えを詳述して、このコードが何をしているのかを説明できますか?これは将来の訪問者に役立つだろう。 –

関連する問題