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(); }