Комната заполнить столбец объекта другим объектом - PullRequest
0 голосов
/ 16 марта 2019

У меня есть объект ModelA (столбцы: a, a1, a2, список [a3]), в то время как столбец a3 в объекте ModelA является другим объектом ModelB (столбцы: b, b1, b2, list [b3]). Первичный ключ в объекте ModelA (a) является внешним ключом в объекте ModelB. Столбец b3 также является другой сущностью ModelC с внешним ключом, сделанным из первичного ключа в сущности ModelB (b). Как сделать запрос sqlite таким, чтобы при запросе ModelA столбец a3 заполнялся всем списком в ModelB, а b3 заполнялся всем списком из ModelC. Я пробовал этот запрос

@Query("SELECT *  FROM ModelA INNER JOIN ModelB ON ModelB.b1 = ModelA.a INNER JOIN ModelC ON ModelC.c1 = ModelB.b WHERE ModelA.a = :journeyID")
fun getModelAUsingJourneyId(journeyID: String) : ModelA

Проблема в том, что я получаю N результатов, если ModelB или ModelC имеют N размер, который удовлетворяет запросу, хотя tripID всегда будет соответствовать только одной строке в ModelA, поскольку он является уникальным первичным ключом. Мне нужна только одна строка в ModelA, заполненная всеми данными всех сущностей, так как все они связаны с первичным ключом и внешним ключом.

Обновление: Хейвен пытался найти решение для этого, я согласился на Царство, так как это проще для установления отношений. С Realm я также мог бы использовать LinkingObject для обратной ссылки от дочернего элемента к родительскому.

...