ایجاد نماها در پایگاه داده

کتابخانه‌ی پایداری Room از viewهای پایگاه داده‌ی SQLite پشتیبانی می‌کند که به شما امکان می‌دهد یک query را در یک کلاس کپسوله‌سازی کنید. Room به این کلاس‌های query-backed به عنوان view اشاره می‌کند و می‌توانید از آنها به عنوان اشیاء داده در یک شیء دسترسی به داده (DAO) استفاده کنید.

ایجاد یک نما

برای ایجاد یک نما، حاشیه‌نویسی @DatabaseView را به یک کلاس اضافه کنید. مقدار حاشیه‌نویسی را برابر با پرس‌وجویی که کلاس نشان می‌دهد، تنظیم کنید.

قطعه کد زیر نمونه‌ای از یک view را ارائه می‌دهد:

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

یک نما را به پایگاه داده خود مرتبط کنید

برای افزودن این view به پایگاه داده، ویژگی views را به حاشیه‌نویسی @Database برنامه خود اضافه کنید:

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