#jetpack #library
Последний релиз Room добавил нам новую фукнциональность: теперь можно возвращать объекты, обёрнутые в тип
Map. Эта фича полезна, если вам нужно сделать JOIN в запросе. Для 1-M связей запрос будет выглядеть так:
@Query("SELECT * FROM Song JOIN Artist ON Song.artistId = Artist.artistId")
fun getSongAndArtist(): Map<Song, Artist>А если вы хотите использовать связь M-M, то запись немного поменяется:
@Query("SELECT * FROM Artist JOIN Album ON Artist.id = Album.artistId")
fun getArtistAndAlbums(): Map<Artist, List<Album>>.Если по какой-то причине вы не хотите или не можете создать дополнительный Embedded класс, то это решение отлично зайдёт. Ну и конечно, есть встроенные обёртки над
Map с LiveData, Observable и Flow.Пока что фича в alpha, а подробнее можно почитать о ней тут.