Veritabanıyla ilgili görünümler oluşturma

Room kalıcılık kitaplığı, SQLite veritabanı görünümlerini destekler. Bu görünümler, bir sorguyu sınıfa kapsamanıza olanak tanır. Room, sorgu destekli bu sınıfları görünümler olarak adlandırır ve bunları veri erişimi nesnesinde (DAO) veri nesneleri olarak kullanabilirsiniz.

Görünüm oluşturma

Görünüm oluşturmak için bir sınıfa @DatabaseView ek açıklamasını ekleyin. Açıklama değerini, sınıfın temsil ettiği sorguya ayarlayın.

Aşağıdaki kod snippet'inde bir görünüm örneği verilmiştir:

@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?
)

Görünümü veritabanınızla ilişkilendirme

Bu görünümü veritabanınıza dahil etmek için uygulamanızın @Database ek açıklamasına views özelliğini ekleyin:

@Database(
    entities = [User::class, Department::class],
    views = [UserDetail::class],
    version = 1
)
abstract class AppDatabase : RoomDatabase() {
    abstract fun userDao(): UserDao
}