我遇到以下问题:
这是ProjectInfo
的类
public class ProjectInfo extends RealmObject
{
@Getter @Setter @PrimaryKey private long projectId;
@Getter @Setter RealmList<Submission> submissions;
}
这是
Submission
的类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 = realm.where(ProjectInfo.class).equalTo("projectId", projectId).findFirst();
projectInfo.submissions == null;
我是否需要做一些特殊的事情才能自动从其他表中加载引用?
我正在使用领域版本
classpath 'io.realm:realm-gradle-plugin:2.1.1'
@Getter和@Setter来自projectLombok。
更新1
调试时,我在
sumbissionsRealmList
类中看到一个名为ProjectInfoRealmProxy
的成员,该成员具有正确的值。但是不会将它们写入submissions
成员。是什么原因? 最佳答案
当然不是。 RealmProxy内部的所有字段都是延迟加载的。您可以通过getSubmissions()
获取列表,该列表将返回包含元素代理的列表。字段本身仅用于提供基础的Realm模式(并为它们托管非托管对象的数据,当您调用insertOrUpdate
或copyToRealmOrUpdate
时,Realm会使用这些数据来填充基础的Realm)
但这在文档中都提到了:
https://realm.io/docs/java/latest/#android-studio-debugging