Отправляет ли запрос Room IN данные с использованием первичных ключей DISTINCT и ORDER BY - PullRequest
0 голосов
/ 12 мая 2019

Я запрашиваю свою базу данных комнат, используя запрос IN с таким списком, как этот

@Query("SELECT * FROM card WHERE cardId IN (:cardIds)")
LiveData<List<Card>> getCardsByIds(List<Integer> cardIds);

Но затем он удаляет дубликаты и возвращает их в порядке идентификаторов первичного ключа, это не то, что я хочу.Я хочу, чтобы он возвращался так же, как список, который я дал ему в том порядке, в котором он был передан в базу данных, поэтому, например, с учетом списка <1,3,2,1,4,5,1,2>, я хочу вернуть то же самое, но сейчас я возвращаюсь <1,2,3,4,5> Я смотрел на получение данных непосредственно из курсора, что кажется смешным, так как Android настаивает, что вы этого не делаете, и я пыталсяиспользуя необработанный запрос, который, кажется, мне не нравится играть с моими живыми данными, есть идеи?Похоже, это должно быть очень просто, так как sqlite делает это из коробки, это то, что комната применяет первичный ключ DISTINCT и ORDER BY при возврате данных, и если кто-нибудь знает, как это изменить?

РЕДАКТИРОВАТЬ это явно требует больше, чем первоначальный вопрос, и это может быть проблема sqlite, а не проблема комнаты Android, означающая, что теги здесь более актуальны

...