גרסה 2.1.0 ואילך של התמדות של החדר מספקת תמיכה במסד נתונים של SQLite. תצוגות מפורטות, מה שמאפשר לך כדי להצפין שאילתה במחלקה. 'חדר' מתייחס לכיתות האלה שמבוססות על שאילתות כמו תצוגות, והן פועלות בדיוק כמו אובייקטים פשוטים של נתונים בשימוש DAO
יצירת תצוגה
כדי ליצור תצוגה מפורטת, מוסיפים את המאפיין
הערה @DatabaseView
לכיתה.
מגדירים את ערך ההערה לשאילתה שהמחלקה צריכה לייצג.
קטע הקוד הבא הוא דוגמה לתצוגה מפורטת:
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; }
שיוך תצוגה למסד הנתונים
כדי לכלול את התצוגה הזו במסד הנתונים של האפליקציה, צריך לכלול את
נכס views
באפליקציה
הערה בנושא @Database
:
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(); }