Room 持久性库支持 SQLite 数据库视图,让您能够将查询封装到类中 。Room 将这些查询支持的类称为 视图,您可以在 数据访问对象 (DAO) 中将它们用作数据对象。
创建视图
如需创建视图,请将 @DatabaseView 注释添加到类中。将注释值设为类表示的查询。
以下代码段提供了一个视图示例:
@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( val id: Long, val name: String?, val departmentId: Long, val departmentName: String? )
将视图与数据库相关联
如需将此视图添加到数据库中,请将 views 属性添加到您的
应用'的 @Database 注释中:
@Database( entities = [User::class, Department::class], views = [UserDetail::class], version = 1 ) abstract class AppDatabase : RoomDatabase() { abstract fun userDao(): UserDao }