Как мы можем использовать @DatabaseView в Android Room в качестве источника данных для использования его в PagedList.BoundaryCallback - PullRequest
0 голосов
/ 20 мая 2019

В последней версии Room 2.1.0 команда Android представила DatabaseView: https://developer.android.com/training/data-storage/room/creating-views

Как мы можем выбрать просмотр базы данных как DataSource.Factory для использования его в PagedList.BoundaryCallback.

Например, у нас есть просмотр базы данных:

@DatabaseView("SELECT user.id, user.name, user.departmentId," +
        "department.name AS departmentName FROM user " +
        "INNER JOIN department ON user.departmentId = department.id")
data class UserDetail(
    val id: Long,
    val name: String?,
    val departmentId: Long,
    val departmentName: String?
)

Но когда я запрашиваю, чтобы получить UserDetail в классе Дао, например, это

 @Query("SELECT * FROM UserDetail WHERE id= :id")
    fun getUserDetail(id: String) : DataSource.Factory<Int, UserDetail>

Я видел, что он вернет все элементы в текущей базе данных, хотя я настроил размер страницы только как 20 элементов. Можем ли мы использовать просмотр базы данных для подкачки?

...