Вопросы к Поиску с Алисой
Работа с отношениями «один ко многим» в Room предполагает использование внешних ключей, где дочерняя таблица (сторона «многих») ссылается на строку в родительской таблице через дополнительное поле. www.slingacademy.com
Пример реализации: www.slingacademy.com
@Entity data class User( @PrimaryKey val userId: Long, val userName: String ) www.slingacademy.com @Entity data class Post( @PrimaryKey val postId: Long, val userCreatorId: Long, // внешний ключ, ссылающийся на User val postContent: String ) www.slingacademy.com
Чтобы получить доступ к постам для одного пользователя, используется: www.slingacademy.com
data class UserWithPosts( @Embedded val user: User, @Relation( parentColumn = ”userId”, entityColumn = ”userCreatorId” ) val posts: List ) www.slingacademy.com
Для реализации связей между таблицами в Room также используют аннотацию @Relation
и аннотацию @Embedded
. forum.hpc.name Это позволяет поддерживать целостность данных, автоматически обновлять или удалять связанные записи и создавать запросы, которые возвращают данные из нескольких таблиц одновременно. forum.hpc.name