领域关系字段始终为空
Realm relation field always null
有我的模特:
public class RChat extends RealmObject {
@PrimaryKey
private String Id;
private RMyTest Test;
public RChat() {}
}
和
public class RMyTest extends RealmObject {
@PrimaryKey
private String myName;
public RMyTest() {
}
}
我是这样使用的:
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
对象的 Test
字段始终具有空值。我该如何解决这个问题?
代码看起来正确。如果您通过检查调试 window 中 chat1
的 Test
字段得到空值,您将得到一个空值。这是意料之中的。
Realm 将生成代理 class 并覆盖代理 class 中的 getters/setters。所以如果你尝试
RMyTest rProfile = chat1.getTest();
我相信你可以得到相应的 RMyTest
对象而不是 null
。
记录了此行为 here。
我在想我的对象不能直接为空,但重点是 Realm 对模型使用代理,而代理实际上不为空。
有我的模特:
public class RChat extends RealmObject {
@PrimaryKey
private String Id;
private RMyTest Test;
public RChat() {}
}
和
public class RMyTest extends RealmObject {
@PrimaryKey
private String myName;
public RMyTest() {
}
}
我是这样使用的:
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
对象的 Test
字段始终具有空值。我该如何解决这个问题?
代码看起来正确。如果您通过检查调试 window 中 chat1
的 Test
字段得到空值,您将得到一个空值。这是意料之中的。
Realm 将生成代理 class 并覆盖代理 class 中的 getters/setters。所以如果你尝试
RMyTest rProfile = chat1.getTest();
我相信你可以得到相应的 RMyTest
对象而不是 null
。
记录了此行为 here。
我在想我的对象不能直接为空,但重点是 Realm 对模型使用代理,而代理实际上不为空。