При создании представления базы данных в запросе может использоваться предложение Where, но оно не будет динамическим.Допустим, вы хотите иметь представление базы данных, которое возвращает только активных пользователей, назначенных любому отделу, поэтому вы можете иметь Where user.active = true
или что-то в этом роде.Но это будет установлено в схеме, поэтому каждый раз, когда вы запрашиваете это представление, оно возвращает только активных пользователей.
При добавлении нового пользователя в таблицу User представление автоматически обновляется.
Но вам не нужно иметь это предложение Where при создании представления базы данных.После создания представления вы можете использовать его как обычную таблицу, чтобы иметь DAO, который запрашивает только тех пользователей, у которых есть требуемый идентификатор.
Например:
@Query("SELECT * FROM UserDetail WHERE id = :id")
fun search(id: Int): List<UserDetail>
Итакваше представление - это «таблица», которая объединяет пользователя и отдел, а затем вы можете выполнять запрос как обычную таблицу и иметь фильтры.
Помогает ли это?