A biblioteca de persistência do Room oferece suporte a visualizações de banco de dados do SQLite, que permitem encapsular uma consulta em uma classe. O Room se refere a essas classes compatíveis por consulta como visualizações, e você pode usá-las como objetos de dados em um objeto de acesso a dados (DAO).
Criar uma visualização
Para criar uma visualização, adicione a @DatabaseView anotação a uma classe. Defina o valor da anotação como a consulta que a classe representa.
O snippet de código a seguir fornece um exemplo de visualização.
@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? )
Associar uma visualização ao seu banco de dados
Para incluir essa visualização no seu banco de dados, adicione a views propriedade ao seu
app's @Database anotação:
@Database( entities = [User::class, Department::class], views = [UserDetail::class], version = 1 ) abstract class AppDatabase : RoomDatabase() { abstract fun userDao(): UserDao }