Я пытаюсь выяснить проблему, когда у меня есть POJO с Embedded и отношением один-ко-многим, и автоматически сгенерированный код выбирает неправильный индекс столбца для курсора.Проблема заключается в том, что он путает столбцы из Identity и Scan и устанавливает значения Scan в значения Identity из JOIN.
Я уже проверил Проблема с тем же именем поля втаблиц, когда соединяются с таблицами в ответах ROOM , и это, похоже, не помогает, так как не генерирует компилируемый код для POJO.У меня есть два класса, Scan и Identity, они извлекаются через
@Query("SELECT * FROM scans JOIN identities on scans.identity_id = identities.rid WHERE scans.id IN (:ids) AND scans.deleted_at IS NULL ORDER BY scans.updated_at DESC")
@Transaction
Flowable<List<ScanAndIdentity>> findAllWithIdentity(long[] ids);
Также есть POJO:
public class ScanAndIdentity {
@Embedded
public Scan scan;
@Relation(parentColumn = "identity_id", entityColumn = "rid", entity =
Identity.class)
public List<Identity> identities;
}
Как я могу обойти эту проблему?Я пытался с префиксом в Embedded, но это также дает ошибку Not sure how to convert a Cursor to this method's return type (*.pojo.ScanAndIdentity)