Sye*_*yed 1 database sqlite android
在Android文档代码中用于在房间数据库中创建视图是
@DatabaseView("SELECT user.id, user.name, user.departmentId," +
    "department.name AS departmentName FROM user " +
    "INNER JOIN department ON user.departmentId = department.id")
data class UserDetail(
var id: Long,
var name: String?,
var departmentId: Long,
var departmentName: String?
)
Run Code Online (Sandbox Code Playgroud)
但是我如何使用诸如user.id = userId的动态条件创建视图,其中userId = 1或2或某个整数
创建数据库视图时,可以在查询中包含Where子句,但这不是动态的。假设您想要一个数据库视图,该视图仅返回分配给任何部门的活动用户,因此您可以拥有Where user.active = true或类似的东西。但这将在模式上设置,因此,每次查询该视图时,它只会返回活动用户。
将新用户添加到“用户”表时,该视图将自动更新。
但是,在创建数据库视图时,不需要此Where子句。创建视图后,您可以将其用作普通表,因此可以拥有仅查询具有所需ID的用户的DAO。
例如:
@Query("SELECT * FROM UserDetail WHERE id = :id")
fun search(id: Int): List<UserDetail>
Run Code Online (Sandbox Code Playgroud)
因此,您的视图是连接用户和部门的“表”,然后您可以作为普通表进行查询并具有过滤器。
这有帮助吗?