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

Oda kalıcı kitaplığının 2.1.0 ve üzeri sürümleri, SQLite veritabanı görünümleri için destek sunarak sorguyu sınıfa entegre etmenize olanak tanır. Oda, sorgu destekli bu sınıflara görünüm adı verir ve DAO'da kullanıldığında basit veri nesneleriyle aynı şekilde davranır.

Görünüm oluşturma

Görünüm oluşturmak için @DatabaseView ek açıklamasını sınıfa ekleyin. Ek açıklamanın değerini sınıfın temsil etmesi gereken sorguya ayarlayın.

Aşağıdaki kod snippet'i bir görünüm örneği sağlar:

Kotlin

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

Java

@DatabaseView("SELECT user.id, user.name, user.departmentId," +
              "department.name AS departmentName FROM user " +
              "INNER JOIN department ON user.departmentId = department.id")
public class UserDetail {
    public long id;
    public String name;
    public long departmentId;
    public String departmentName;
}

Bir görünümü veritabanınızla ilişkilendirme

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

Kotlin

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

Java

@Database(entities = {User.class}, views = {UserDetail.class},
          version = 1)
public abstract class AppDatabase extends RoomDatabase {
    public abstract UserDao userDao();
}