Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Android域中的子级访问父级_Android_Sqlite_Orm_Many To Many_Realm - Fatal编程技术网

从Android域中的子级访问父级

从Android域中的子级访问父级,android,sqlite,orm,many-to-many,realm,Android,Sqlite,Orm,Many To Many,Realm,我正在使用Realm1.2.0为Android创建一个聊天应用程序 以下是我创建的两个最小化模型: public class Room extends RealmObject { private String name; private RealmList<Message> messages; } public class Message extends RealmObject { @PrimaryKey private long id;

我正在使用Realm1.2.0为Android创建一个聊天应用程序

以下是我创建的两个最小化模型:

public class Room extends RealmObject {

    private String name;

    private RealmList<Message> messages;

}

public class Message extends RealmObject {

    @PrimaryKey
    private long id;

    private String text;

}
但我也希望从子对象访问父对象,如下所示:

message.getRoom()
在Realm中不需要再次手动查询所有房间就可以做到这一点吗?

该概念已被调用,但它们还不在。事实上,它们正处于设计阶段左右,所以在自动反向关系可用之前需要一段时间

因此,目前你需要自己维护关系的双方

public class Room extends RealmObject {

    private String name;

    private RealmList<Message> messages;

}

public class Message extends RealmObject {

    @PrimaryKey
    private long id;

    private String text;

    private Room room;
}

嗯,那太不幸了。但是谢谢你的临时解决方案!
public class Room extends RealmObject {

    private String name;

    private RealmList<Message> messages;

}

public class Message extends RealmObject {

    @PrimaryKey
    private long id;

    private String text;

    private Room room;
}
r.executeTransaction((realm) -> {
  Room room = realm.where(Room.class).equalTo("name", name).findFirst();
  Message message = new Message();
  message.setId(getNextId());
  message.setText(text);
  message.setRoom(room);
  message = realm.copyToRealmOrUpdate(message);
  room.getMessages().add(room);
}