Tworzenie widoków w bazie danych

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
}