[英]Android Room database view
在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或某个整数
创建数据库视图时,可以在查询中包含Where子句,但这不是动态的。 假设您要拥有一个仅返回分配给任何部门的活动用户的数据库视图,因此您可以使用Where user.active = true
或类似的内容。 但这将在模式上设置,因此,每次查询该视图时,它只会返回活动用户。
将新用户添加到“用户”表时,该视图将自动更新。
但是,在创建数据库视图时,不需要此Where子句。 创建视图后,您可以将其用作普通表,因此可以拥有仅查询具有所需ID的用户的DAO。
例如:
@Query("SELECT * FROM UserDetail WHERE id = :id")
fun search(id: Int): List<UserDetail>
因此,您的视图是连接用户和部门的“表”,然后您可以作为普通表进行查询并具有过滤器。
这有帮助吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.