ספריית Room persistence תומכת בתצוגות של מסד נתונים SQLite, שמאפשרות לכם להצפין שאילתה במחלקה. ב-Room, המחלקות האלה שמגובות בשאילתות נקראות תצוגות, ואפשר להשתמש בהן כאובייקטים של נתונים באובייקט לגישה לנתונים (DAO).
יצירת תצוגה
כדי ליצור תצוגה, מוסיפים את ההערה @DatabaseView לכיתה. מגדירים את ערך ההערה לשאילתה שהמחלקה מייצגת.
בקטע הקוד הבא יש דוגמה לתצוגה:
@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? )
שיוך תצוגה למסד הנתונים
כדי לכלול את התצוגה הזו במסד הנתונים, מוסיפים את מאפיין views לאנוטציה @Database של האפליקציה:
@Database( entities = [User::class, Department::class], views = [UserDetail::class], version = 1 ) abstract class AppDatabase : RoomDatabase() { abstract fun userDao(): UserDao }