Android Комната - отношения многие-ко-многим не возвращают сущности отношений - PullRequest
0 голосов
/ 12 марта 2020

Я следовал документации, предоставленной в android руководствах разработчика и в статье Medium .

Я пытаюсь вернуть список воспроизведения песен, но хочу список сущностей, а не только идентификаторы. Следуя приведенным выше ссылкам, у меня есть это.

Мои сущности:

@Entity
data class MediaEntity(
    @PrimaryKey val identifier: String,
    val imageUrl: String,
    val title: String,
    val description: String,
    val media: String,
    val duration: Double,
    val progress: Int,
    val listenedToCompletion: Boolean
)

@Entity
data class PlaylistEntity(
    @PrimaryKey val playlistId: String,
    val playlistName: String,
    val playlistDescription: String = "",
    val currentPosition: Int = 0
)

@Entity(primaryKeys = ["playlistId", "identifier"])
data class PlaylistMediaLinkEntity(
    val playlistId: String,
    val identifier: String
)

Мой DAO для таблицы ссылок выглядит следующим образом:

@Dao
interface PlaylistMediaLinkDao {

    @Transaction
    @Query("SELECT * FROM PLAYLISTENTITY")
    fun getPlaylistWithMediaItems(): List<MediaInPlaylist>

    @Insert(onConflict = OnConflictStrategy.IGNORE)
    fun insert(playlistMediaLinkEntity: PlaylistMediaLinkEntity)


}

А затем мои медиа в объект списка воспроизведения:

class MediaInPlaylist() {
    @Embedded
    lateinit var playlist: PlaylistEntity

    @Relation(
        parentColumn = "playlistId",
        entity = MediaEntity::class,
        entityColumn = "identifier",
        associateBy = Junction(
            value = PlaylistMediaLinkEntity::class,
            parentColumn = "playlistId",
            entityColumn = "identifier"
        )
    )
    lateinit var mediaEntities: List<MediaEntity>
}

Я могу подтвердить, что мой PlaylistMediaLinkEntity заполнен парами идентификаторов playlist-media, но при вызове getAllPlaylistsWithMediaItems объект MediaInPlaylist возвращается с данными Playlist, но список из mediaEntries пусто.

Я что-то пропустил или куда я иду не так? То, что я сделал, соответствует большинству примеров в Интернете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...