我正在使用Realm 1.2.0 for 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;
}
使用这些模型,我可以在特定房间中获取所有消息。问题是,我也想通过消息进入房间。
例如,这是可能的(从父级访问子级):
room.getMessages()
但是我也想从孩子那里访问父母,像这样:
message.getRoom()
在Realm中,无需再次手动查询所有房间,这是否可能?
最佳答案
这个概念称为backlink
,现在还没有。实际上,它们处于设计阶段左右,因此需要一段时间才能使用自动逆关系。
因此,当前您需要自己维护关系的双方。
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);
}
关于android - 在Android的Realm中从 child 访问 parent ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39642849/