当我尝试通过在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;
答案 0 :(得分:1)
在我的情况下,我有一个对象(Workout
),其中有一个或多个sets
和exercises
。 set
与exercise
和workout
相关。要计算给定锻炼中给定锻炼的集合,我需要找到与exercise
和 workout
相关的所有集合。这可以通过使用所需对象的任何唯一字段和点访问符号来实现。
例如:
results = realm.where(Set.class).equalTo("workout.id", this.getId())
.equalTo("exercise.id", exercise.getId())
.findAll();
这里我使用为每个对象创建的UUID并比较它而不是对象本身。这一直有效,直到在Realm中实现抽象直接对象比较。