Java RealmResult与适配器的多对多关系

Java RealmResult与适配器的多对多关系,java,android,realm,Java,Android,Realm,我有两个模型(具有相关属性)如下所示: Playlist.java 正如您所看到的,一个播放列表可以包含许多歌曲,而一首歌曲可以属于许多播放列表 在我的应用程序的一部分中,我用RealmBaseAdapter在一个RecyclerView中显示所有歌曲。我可以通过以下方式实现这一目标: RealmResults<Song> songResult = realm.where(Song.class).findAll(); RealmSongsAdapter realmAdapter =

我有两个模型(具有相关属性)如下所示:

Playlist.java 正如您所看到的,一个播放列表可以包含许多歌曲,而一首歌曲可以属于许多播放列表

在我的应用程序的一部分中,我用RealmBaseAdapter在一个RecyclerView中显示所有歌曲。我可以通过以下方式实现这一目标:

RealmResults<Song> songResult = realm.where(Song.class).findAll();
RealmSongsAdapter realmAdapter = new RealmSongsAdapter(getActivity().getApplicationContext(), songResult , true);
songAdapter.setRealmAdapter(realmAdapter);
另一个问题是,每次播放列表歌曲列表更改时,我都必须重新创建此查询


有没有更简单的方法?提前谢谢

来自这个王国的基督徒。不幸的是,如果您不想在
歌曲
上维护
RealmList
字段,目前除了您自己找到的方法外,没有其他方法。也就是说,我们在TODO上有一个称为反向链接的概念,它正适合这样的用例:

谢谢。我来看看这个问题。@ChristianMelchior但是在播放列表中添加反向链接如何解决这个问题呢?因为您仍然需要查询播放列表中的歌曲列表,而不是简单地使用类之间的关系。当我们必须在屏幕上显示RealmResults列表时,您是否计划添加一些支持,以从案例的关系中获取RealmResults列表?谢谢
@PrimaryKey
String id;
String name;
RealmResults<Song> songResult = realm.where(Song.class).findAll();
RealmSongsAdapter realmAdapter = new RealmSongsAdapter(getActivity().getApplicationContext(), songResult , true);
songAdapter.setRealmAdapter(realmAdapter);
Playlist playlist = realm.where(Playlist.class).equalTo("id", playlistID).findFirst();
RealmResults<Song> playlistSongs = playlist.getSongs();
RealmQuery<Song> query = mRealm.where(Song.class);
for (Song song : playlist.getSongs()) {
    query = query.or().equalTo("id", song.getId());
}
RealmResults<Song> results = query.findAll();