Android 如何从另一个realmList中的realmList获取所有realmObjects?
对不起,如果问题不是很清楚。让我试着在这里发展一下。 这是我的结构Android 如何从另一个realmList中的realmList获取所有realmObjects?,android,realm,Android,Realm,对不起,如果问题不是很清楚。让我试着在这里发展一下。 这是我的结构 public class User extends RealmObject{ ... RealmList<Tags> userTags; } public class Tags extends RealmObject{ ... RealmList<Results> tagResults; } public class Results extends RealmObject{ ...
public class User extends RealmObject{
...
RealmList<Tags> userTags;
}
public class Tags extends RealmObject{
...
RealmList<Results> tagResults;
}
public class Results extends RealmObject{
...
}
所需的结果应该是result1、result2、result3、result4
现在我正在手动操作
...
RealmList<Results> tagResults = new RealmList<>;
RealmList<Tags> userTags= user1.getTags();
for (Tags tag : userTags)
{
tagResults.addAll(tag.getResults());
}
mRealmAdapter = new RealmResultsAdapter(this, tagResults);
。。。
RealmList tagResults=新的RealmList;
RealmList userTags=user1.getTags();
用于(标签:用户标签)
{
tagResults.addAll(tag.getResults());
}
mRealmAdapter=新的RealmResultsAdapter(此为tagResults);
有没有其他方法可以在不手动操作的情况下获得所需的结果
提前感谢编辑:Realm 3.5.0添加了反向关系,因此您应该这样做:
public class User extends RealmObject{
...
RealmList<Tags> userTags;
}
public class Tags extends RealmObject{
...
@LinkingObjects("userTags")
private final RealmResults<User> tagOfUsers = null;
RealmList<Results> tagResults;
}
public class Results extends RealmObject{
@LinkingObjects("tagResults")
private final RealmResults<Tags> resultsOfTags = null;
...
}
public类用户扩展RealmObject{
...
RealmList用户标签;
}
公共类标记扩展了RealmObject{
...
@链接对象(“用户标签”)
私有最终RealmResults TagoUsers=null;
RealmList tagResults;
}
公共类结果扩展了RealmObject{
@链接对象(“标记结果”)
private final RealmResults resultsOfTags=null;
...
}
及
RealmResults tags=realm.where(tags.class).equalTo(“tagOfUsers.userId”,userId).findAll();//有结果
3.0.0之前的答案: 由于我们还在等待,我会像这样设置RealmObjects
public class User extends RealmObject{
...
@PrimaryKey
long id;
RealmList<Tags> userTags;
}
public class Tags extends RealmObject{
...
@PrimaryKey
long id;
User user;
@Index
long userId;
RealmList<Results> tagResults;
}
public class Results extends RealmObject {
User user;
@Index
long userId;
Tags tag;
@Index
long tagId;
...
}
public类用户扩展RealmObject{
...
@主键
长id;
RealmList用户标签;
}
公共类标记扩展了RealmObject{
...
@主键
长id;
用户;
@索引
长用户标识;
RealmList tagResults;
}
公共类结果扩展了RealmObject{
用户;
@索引
长用户标识;
标签;
@索引
长塔吉德;
...
}
然后
RealmResults results=realm.where(results.class).equalTo(“userId”,userId).findAll();
谢谢您的回答@EpicPandaForce。我也在想类似的事情。遗憾的是,领域团队还没有实现,这将非常方便。再次感谢您的快速回答是的,目前正在进行的是ObjectStore集成,多进程支持,然后是细粒度通知:)就我个人而言,我喜欢一些RealmList
,之后反向链接会更好是的,我也希望看到RealmList。现在,我正在使用我自己的realmString对象。再次感谢。实际上,Realm 3.5.0添加了反向链接,Realm 4.0.0的RealmList
将在两周内推出。
RealmResults<Tags> tags = realm.where(Tags.class).equalTo("tagOfUsers.userId", userId).findAll(); // has results
public class User extends RealmObject{
...
@PrimaryKey
long id;
RealmList<Tags> userTags;
}
public class Tags extends RealmObject{
...
@PrimaryKey
long id;
User user;
@Index
long userId;
RealmList<Results> tagResults;
}
public class Results extends RealmObject {
User user;
@Index
long userId;
Tags tag;
@Index
long tagId;
...
}
RealmResults<Results> results = realm.where(Results.class).equalTo("userId", userId).findAll();