Mar*_*tek 1 java android realm realm-list
我遇到以下问题:
这是一个类ProjectInfo
public class ProjectInfo extends RealmObject
{
@Getter @Setter @PrimaryKey private long projectId;
@Getter @Setter RealmList<Submission> submissions;
}
Run Code Online (Sandbox Code Playgroud)
这是一个类Submission
public class Submission extends RealmObject
{
@Getter @Setter @PrimaryKey long id;
@Getter @Setter Date creationDate;
public Submission() {}
}
Run Code Online (Sandbox Code Playgroud)
当我创建对象并保存到领域数据库时,从 ProjectInfo 到提交的引用在列中显示如下
class_Submission{0,1,2,3}
这看起来是对的。
但是现在当我加载projectInfo对象时
ProjectInfo projectInfo = realm.where(ProjectInfo.class).equalTo("projectId", projectId).findFirst();
Run Code Online (Sandbox Code Playgroud)
该projectInfo.submissions == null;
我是否需要做一些特殊的事情才能自动加载其他表的引用?
我使用的是realm版本
classpath 'io.realm:realm-gradle-plugin:2.1.1'
@Getter 和@Setter 来自projectLombok。
sumbissionsRealmList在调试时,我看到类中调用的成员ProjectInfoRealmProxy具有正确的值。但它们没有写入submissions成员中。是什么原因?
当然不是。RealmProxy 内的所有字段都是延迟加载的。您可以通过 获取列表getSubmissions(),这将返回包含元素代理的列表。insertOrUpdate这些字段本身只是提供底层 Realm 架构(并为它们加载非托管对象的数据,当您调用或时,Realm 使用这些数据填充底层 Realm copyToRealmOrUpdate)
但这在文档中都提到了:
https://realm.io/docs/java/latest/#android-studio-debugging
| 归档时间: |
|
| 查看次数: |
376 次 |
| 最近记录: |