Realm Query Android

时间:2015-11-22 12:14:40

标签: android sqlite realm

我开始在我的android项目中使用Realm ..

一切进展顺利......但我试图过滤数据,但我不能。

我想这样做一个查询:

SELECT * FROM messages WHERE (fromId='id1' AND toId='id2') OR (fromId='id2' AND toId='id1');

这是我的代码:

RealmResults<com.intcore.android.tawasol.Message> results =
            realm.where(com.intcore.android.tawasol.Message.class).beginGroup().equalTo("fromId", fromId).equalTo("toId", toId).endGroup().or().
    beginGroup().equalTo("fromId", toId).equalTo("toId", fromId).endGroup().findAllSorted("date", true);

但这只返回1个结果..它应该返回2个结果。

任何想法?

1 个答案:

答案 0 :(得分:0)

您的查询看起来很好。尝试将查询拆分为结果,然后对其进行排序。

RealmResults<com.intcore.android.tawasol.Message> results;
results = realm.where(com.intcore.android.tawasol.Message.class).
          beginGroup().equalTo("fromId", fromId).equalTo("toId", toId).endGroup()
          .or().
          beginGroup().equalTo("fromId", toId).equalTo("toId", fromId).endGroup()
          .findAll();
results.sort("date") // ascending
results.sort("date", RealmResults.SORT_ORDER_DESCENDING); // descending