如何在RealmList中编写查询?

时间:2015-02-27 21:27:07

标签: java android realm

我有模特:

public class Feed extends RealmObject {
@PrimaryKey
private int id;
private boolean active;
private Section section;
private RealmList<Job> jobs;
// getters and setters
......
}



public class Section extends RealmObject {

private String title;
private String subtitle;
private String url;
private String imageSrc;
// getters and setters
......
}


public class Job extends RealmObject {
@PrimaryKey
private long id;
private boolean fultime;
private boolean contract;
private boolean remotely;
private String company;
private String link;
private String job;
private Date pubDate;
private String logoUrl;
private String bonus;
private String location;

// getters and setters
......
}

我想远程获取带有作业的Feed。 只需远程获取作业,这很容易,但我想要的是每个磁带只能远程工作的空缺列表

有几个按类型分组的rss feed空缺,例如设计,后端。我用Realm解析并缓存它们。工作可以是远程,合同,fultaym。我希望得到她的职位空缺,例如只有空缺fultaym工作。 例如,有饲料
|设计|统计工作40 |
|后端|计算工作60 |
.....
我想添加过滤器,例如只有fultaym
|设计|计算工作35 |
|后端|计算工作51 |
........

抱歉我的英文

1 个答案:

答案 0 :(得分:1)

来自境界的克里斯蒂安。要记住关于Realm的一件事是它不是关系数据库,所以有时你必须考虑一个不同的对象模型才能表达你想要的查询。

在您的情况下,您还需要将Feed添加到作业,然后直接查询作业:

public class Job extends RealmObject {
  ...
  Feed feed;
}

RealmResults<Job> results = realm.where(Job.class).equalTo("fulltime", true).findAllSorted("feed.id")

// Getting the count for each feed type would then require something like this:
RealmResults<Feed> feeds = realm.allObjects(Feed.class);
for (Feed feed : feeds) {
  int feedCount = results.where().equalTo("feed.id", feed.getId()).count();
}