领域关系字段始终为空

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 中 chat1Test 字段得到空值,您将得到一个空值。这是意料之中的。

Realm 将生成代理 class 并覆盖代理 class 中的 getters/setters。所以如果你尝试

RMyTest rProfile = chat1.getTest();

我相信你可以得到相应的 RMyTest 对象而不是 null

记录了此行为 here

我在想我的对象不能直接为空,但重点是 Realm 对模型使用代理,而代理实际上不为空。