Android 领域关系字段始终为空
以下是我的模型:Android 领域关系字段始终为空,android,null,realm,relation,Android,Null,Realm,Relation,以下是我的模型: public class RChat extends RealmObject { @PrimaryKey private String Id; private RMyTest Test; public RChat() {} } 及 我用的是这样的: mRealm = Realm.getInstance(this); mRealm.beginTransaction(); final
public class RChat extends RealmObject {
@PrimaryKey
private String Id;
private RMyTest Test;
public RChat() {}
}
及
我用的是这样的:
mRealm = Realm.getInstance(this);
mRealm.beginTransaction();
final RChat chat = mRealm.createObject(RChat.class);
chat.setId("test");
RMyTest rProfile = mRealm.createObject(RMyTest.class);
rProfile.setMyName("alireza test");
chat.setTest(rProfile);
//mRealm.copyToRealmOrUpdate(chat);
mRealm.commitTransaction();
RChat chat1 = mRealm.where(RChat.class).equalTo("Id","test").findFirst();
但是chat1对象的测试字段总是空值。如何解决此问题?代码看起来正确。如果通过在调试窗口中检查chat1的测试字段得到null,那么将得到一个null值。这是意料之中的 Realm将生成一个代理类并覆盖代理类中的getter/setter。所以如果你尝试
RMyTest rProfile = chat1.getTest();
我确信您可以得到相应的RMyTest对象,而不是null
这种行为是有文档记录的。我一直认为我的对象不能直接为null,但重点是Realm使用模型代理,而代理实际上不是null。附带说明,如何在没有RealmObjects的setter和getter的情况下编译代码?顺便说一句,您的代码对我来说很好。同样的问题。你找到解决办法了吗?@toidiu我发布了答案。请检查一下。使用getter有帮助。互联网上唯一帮助我的答案!
RMyTest rProfile = chat1.getTest();