Я пытаюсь найти лучший способ получить одну строку с помощью Room по идентификатору.Я скопировал код из руководства о том, как извлечь все мои строки в сущности (Workout
плюс все соединенные сущности), и это прекрасно подходит для заполнения представления переработчика.
Но когда мне нужно перейти ктолько один, в настоящее время мой код предположения в хранилище:
@WorkerThread
suspend fun getWorkoutById(id: Long): LiveData<WorkoutTree> {
return workoutDao.getWorkoutById(id)
}
и в DAO
@Transaction
@Query("SELECT * FROM WORKOUTS WHERE id=:id")
fun getWorkoutById(id: Long): LiveData<WorkoutTree>
Естественно, я вызываю repository.getWorkoutById(myId)
из моей модели представления, чтобы я мог заполнить данные исослаться на это из моей Деятельности / Фрагмента.
Но я пытаюсь выяснить, нахожусь ли я на правильном пути и лучший способ получить это.Честно говоря, это локальная БД для телефона, поэтому не нужно беспокоиться о необходимости оперативных обновлений.
Было бы лучше просто сериализовать объект, указанный в Recyclerview, перечисляющий все строки, и передать его в мою деятельность ине хотите извлекать по идентификатору?
Практически в каждом примере, который я нахожу в Интернете о разработке Room и Android, приводятся примеры извлечения всех строк и использования LiveData, а хранилище имеет открытое свойство LiveData>, заполненное исходным DAO.извлечение всех строк из сущности.
Мне трудно мысленно перевести этот пример в тот, в котором я бы просто выбрал одну строку.
У меня нет ни одного действующего кода, которым можно поделиться, так как я не могу понять, как его спроектировать в Kotlin, Room и тому подобном.Я никогда раньше не писал приложений для Android и пришел из опыта функционального программирования через Python, JS, Scala и поэтому борюсь с тем, как руководства Kotlin и руководства Android рекомендуют вам делать это со всеми дополнительными классами и интерфейсами, используемыми для отделения всего дляприложение для телефона.