Комната - Зачем использовать @Relation поверх @ForeignKey? - PullRequest
0 голосов
/ 24 апреля 2019

Моя текущая цель - иметь отношение «один ко многим» в моих данных.

Из различных уроков я понял, что у меня есть два основных способа сделать это.

  1. Создайте две сущности и попросите ребенка использовать аннотацию @ForeignKey

  2. Создайте эти две сущности и дополнительный POJO, который использует @Embedded для родительской сущности и @Relation для того, чтобы список детей был привязан к родителю

Итак, использование Relation просто кажется дополнительным усилием.Или я что-то упустил?
Большим преимуществом Relation является следующее:

Когда Pojo возвращается из запроса, все его отношения также выбираются Room.

Что было бы не так просто с первым методом?

Ответы [ 2 ]

1 голос
/ 24 апреля 2019

когда вы используете @relation, это помогает СУБД (системе управления базами данных) создать дерево для сортировки и хранения данных.поэтому, когда вы хотите выполнить любой запрос, это очень полезно.

0 голосов
/ 24 апреля 2019

Из комментария Гаутама и дальнейшего чтения я теперь понимаю это следующим образом:
@Relation - это удобная опция, облегчающая извлечение связанных сущностей.Ценой этого удобства является отказ от возможности контролировать, что происходит при удалении родительской записи и, возможно, других вещах.

...