领域查询有2列和不同

时间:2017-07-20 20:44:11

标签: android realm

我想创建一个Realm Android查询,但不知道如何做到这一点。 我的领域对象如下。

public class test extends RealmObject {
     @PrimaryKey 
     int id;
     String test1;
     String test2;
}

我的查询应该在test1和test2中搜索。因此,如果test1或test2等于过滤器String,则应将RealmObject插入到我的列表中。 test1和test2可能都具有相同的值。如果是这种情况,对象应该只在我的列表中出现一次而不是两次。

My query which is not working:
 List<test> games = db.where(test.class)
                .contains("test1", charText, 
                 Case.INSENSITIVE).distinct().where(test.class)
                 contains("test2", charText, Case.INSENSITIVE)
                .distinct();

最后我想在test1之后对列表进行排序。

1 个答案:

答案 0 :(得分:1)

您可以使用RealmQuery::or来组合条件:

List<test> games = db.where(test.class)
                     .contains("test1", charText, Case.INSENSITIVE)
                     .or()
                     .contains("test2", charText, Case.INSENSITIVE)
                     .findAllSorted("test1");

您可以在documentation

中找到此类查询的其他示例

即使test1和test2包含相同的值,同一记录也不会在列表中出现两次,因此您无需在查询中添加明确的约束。