Biblioteka trwałości danych Room obsługuje widoki bazy danych SQLite, które umożliwiają hermetyzację zapytania w klasie. Room nazywa te klasy oparte na zapytaniach widokami i możesz ich używać jako obiektów danych w obiekcie umożliwiającym dostęp do danych (DAO).
Tworzenie widoku
Aby utworzyć widok, dodaj adnotację @DatabaseView do klasy. Ustaw wartość adnotacji na zapytanie, które reprezentuje klasa.
Poniższy fragment kodu zawiera przykład widoku:
@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? )
Powiązanie widoku z bazą danych
Aby uwzględnić ten widok w bazie danych, dodaj właściwość views do
adnotacji @Database aplikacji:
@Database( entities = [User::class, Department::class], views = [UserDetail::class], version = 1 ) abstract class AppDatabase : RoomDatabase() { abstract fun userDao(): UserDao }