В последней версии 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 элементов. Можем ли мы использовать просмотр базы данных для подкачки?