如何在Realm Java中查询与多个其他Realm对象相关的Realm对象

时间:2016-12-05 03:57:36

标签: android realm

当我尝试通过在equalTo查询中传递对象来查询对象关系时,IDE会抱怨无法进行比较。查询彼此相关的Realm对象的正确方法是什么?我的关系设置如下:

public class Workout extends RealmObject implements Parcelable {

    @PrimaryKey
    private String id;
    @Required
    private String name;
    public RealmList<Set> sets;
    public RealmList<Exercise> exercises;
    private Date date;

public class Set extends RealmObject implements Parcelable {

    @PrimaryKey
    private String id;
    @Required
    private Date date;
    private Workout workout;
    private Exercise exercise;
    private int reps;
    private float weight;

1 个答案:

答案 0 :(得分:1)

在我的情况下,我有一个对象(Workout),其中有一个或多个setsexercisessetexerciseworkout相关。要计算给定锻炼中给定锻炼的集合,我需要找到与exercise workout相关的所有集合。这可以通过使用所需对象的任何唯一字段和点访问符号来实现。

例如:

results = realm.where(Set.class).equalTo("workout.id", this.getId())
                .equalTo("exercise.id", exercise.getId())
                .findAll();

这里我使用为每个对象创建的UUID并比较它而不是对象本身。这一直有效,直到在Realm中实现抽象直接对象比较。