RealmObject 中的 RealList 不会自动加载

RealList in RealmObject not automatically loaded

我遇到了以下问题:

这是 ProjectInfo

的 class
public class ProjectInfo extends RealmObject
{
    @Getter @Setter @PrimaryKey private long          projectId;
    @Getter @Setter             RealmList<Submission> submissions;
}

这是 Submission

的 class
public class Submission extends RealmObject
{
    @Getter @Setter @PrimaryKey long    id;
    @Getter @Setter             Date    creationDate;

    public Submission() {}

}

当我创建对象并保存到领域数据库时,从 ProjectInfo 到 Submission 的引用在

列中显示如下

class_Submission{0,1,2,3}

这看起来不错。

但是现在当我使用

加载 projectInfo 对象时
ProjectInfo projectInfo = realm.where(ProjectInfo.class).equalTo("projectId", projectId).findFirst();

projectInfo.submissions == null;

我是否必须做一些特殊的事情才能自动从其他表加载引用?

我使用的是realm版本

classpath 'io.realm:realm-gradle-plugin:2.1.1'

@Getter 和@Setter 来自 projectLombok。

更新 1

调试时,我在 ProjectInfoRealmProxy class 中看到一个名为 sumbissionsRealmList 的成员,它具有正确的值。但是它们没有写入 submissions 成员。这是什么原因?

当然不是。 RealmProxy 中的所有字段都是延迟加载的。您通过 getSubmissions() 获取列表,这将 return 包含元素代理的列表。这些字段本身只是为了提供底层 Realm 模式(并为它们加载非托管对象的数据,当您调用 insertOrUpdatecopyToRealmOrUpdate 时,Realm 会使用这些数据来填充底层 Realm)

但这在文档中都提到了:

https://realm.io/docs/java/latest/#android-studio-debugging