Мне нужно преобразовать стандартный запрос SQL в аннотацию @Query
для использования с Room, но я не могу понять, как это сделать.
У меня есть три стола ...
AccessList
ID INTEGER
ListName TEXT
Active INTEGER
Зачисление
ID INTEGER
FirstName TEXT
LastName TEXT
AccessListEnrollmentMapping
ID INTEGER
AccessListID INTEGER
EnrollmentID INTEGER
Регистрация может быть в нескольких AccessList, а AccessLits могут быть активными [1] или не активными [0], поэтому вот пример SQL-запроса, который работает при использовании DB Browser для SQLite:
select * from Enrollment where ID in (select EnrollmentId from AccessListEnrollmentMapping where AccessListId IN (SELECT ID FROM AccessList WHERE ID < 4 AND Active = 1));
А вот моя @Query
аннотация:
@Query("select * from Enrollment where ID in (select EnrollmentId from AccessListEnrollmentMapping where AccessListId IN (:accessListIds))") // NEED TO CHECK FOR AccessList.Active == 1
public abstract List<Enrollment> selectEnrolleesPerAccessLists(List<Long> accessListIds);
Однако этот запрос возвращает все заявки на активные и неактивные списки доступа. Я не могу понять, как включить where AccessList.Active = 1
в аннотацию.