我有3个表,“播放列表”,“歌曲”和“ Playlist_Song”。 Playlist_Song具有playlist_id外键和user_id外键。我需要获取特定播放列表中的歌曲列表,因此我想对Playlist_Song进行数据库调用,以返回所有带有playlist_id的条目。
然后,我使用歌曲ID对歌曲表进行数据库调用,以检索这些歌曲。我觉得这是非常低效的,应该有一个更好的方法,但是我真的不知道该怎么做。有什么建议?
public List<Song> getSongsInPlaylist(final int playlistId) {
final List<PlaylistSong> playlistSongs = playlistSongDao.getPlaylistSong(playlistId);
if (!playlistSongs.isEmpty()) {
final List<Song> songs = new ArrayList<>();
for (PlaylistSong existingPlaylistSong : playlistSongs) {
songs.add(songDao.findById(existingPlaylistSong.getSongId()).get());
}
return songs;
}
最佳答案
作为歌曲ID的列表传递到songDao,并在一个查询中作为列表检索。
songDao.findByIdIn(列出songIds)。