کتابخانهی پایداری 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 }