gpt4 book ai didi

android - 我如何从另一个 realmList 中的 realmList 获取所有 realmObjects?

转载 作者:行者123 更新时间:2023-11-29 17:15:18 27 4
gpt4 key购买 nike

抱歉,如果问题不是很清楚。让我尝试在这里发展。这是我的结构。

public class User extends RealmObject{
...
RealmList<Tags> userTags;
}

public class Tags extends RealmObject{
...
RealmList<Results> tagResults;
}

public class Results extends RealmObject{
...
}

在我的一项 Activity 中,我想从特定的用户获取所有标签和所有包含的结果。例如:

user1 -> tag1 -> result1
-> result2
-> tag2 -> result3
-> result4

期望的结果应该是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);

有没有其他方法可以在不手动操作的情况下获得所需的结果?

提前致谢

最佳答案

编辑: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;

...
}

RealmResults<Tags> tags = realm.where(Tags.class).equalTo("tagOfUsers.userId", userId).findAll(); // has results

3.0.0 之前的答案:

因此我们仍在等待 inverse relationships (backlinks) ,我会像这样设置 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;
...
}

然后

RealmResults<Results> results = realm.where(Results.class).equalTo("userId", userId).findAll();

关于android - 我如何从另一个 realmList 中的 realmList 获取所有 realmObjects?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39327905/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com