Android Комната - Получение всех базовых детей родителей - PullRequest
0 голосов
/ 07 февраля 2020

Прямо сейчас, моя иерархия отношений A -> (A -> ... -> A) -> B, где есть некоторое количество (также может быть 0) A в середине, и каждая стрелка является отношением один-ко-многим.

  • Каждое A «дерево» оканчивается на B.
  • Каждый A имеет либо A, либо B в качестве дочернего элемента (но не оба )

Мои сущности:

@Entity(tableName = "table_A")
data class A(
    id,        // ID of the A
    parentAid  // ID of the parent A (nullable)
)
@Entity(tableName = "table_B")
data class B(
    id,        // ID of this B
    parentAid  // ID of the parent A (non-nullable)
)

В настоящее время мой метод состоит в том, чтобы запросить "SELECT COUNT(*) FROM table_A WHERE parentAid = :id", чтобы получить сумму A, которую имеет родитель. Если это число больше 0, повторите с каждым ребенком A. Иначе, SELECT * FROM table_B WHERE parentAid = :id запускается, чтобы получить список B, который добавляется в список.

Это эффективный способ ведения дел? Есть ли в Комнате запрос, который может легко это сделать?

...