我想创建一个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之后对列表进行排序。
答案 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包含相同的值,同一记录也不会在列表中出现两次,因此您无需在查询中添加明确的约束。