在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?
)
但是我如何使用诸如user.id = userId的动态条件创建视图,其中userId = 1或2或某个整数
答案 0 :(得分:0)
在创建数据库视图时,您可以在查询中包含Where子句,但这不是动态的。假设您要拥有一个仅返回分配给任何部门的活动用户的数据库视图,因此您可以拥有Where user.active = true
或类似的东西。但这将在架构上进行设置,因此,每次查询该视图时,它只会返回活动用户。
将新用户添加到“用户”表时,视图将自动更新。
但是,在创建数据库视图时,不需要此Where子句。创建视图后,您可以将其用作普通表,因此可以使用DAO来仅查询具有所需ID的用户。
例如:
@Query("SELECT * FROM UserDetail WHERE id = :id")
fun search(id: Int): List<UserDetail>
因此,您的视图是一个连接用户和部门的“表”,然后您可以作为普通表进行查询并具有过滤器。
有帮助吗?