קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
גרסה 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")dataclassUserDetail(valid:Long,valname:String?,valdepartmentId:Long,valdepartmentName:String?)
Java
@DatabaseView("SELECT user.id, user.name, user.departmentId,"+"department.name AS departmentName FROM user "+"INNER JOIN department ON user.departmentId = department.id")publicclassUserDetail{publiclongid;publicStringname;publiclongdepartmentId;publicStringdepartmentName;}
שיוך תצוגה למסד הנתונים
כדי לכלול את התצוגה הזו במסד הנתונים של האפליקציה, צריך לכלול את
נכס views באפליקציה
הערה בנושא @Database:
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-07-27 (שעון UTC)."],[],[],null,["# Create views into a database\n\nVersion 2.1.0 and higher of the [Room persistence\nlibrary](/training/data-storage/room) provides support for [SQLite database\nviews](https://www.sqlite.org/lang_createview.html), allowing you\nto encapsulate a query into a class. Room refers to these query-backed classes\nas *views* , and they behave the same as simple data objects when used in a\n[DAO](/training/data-storage/room/accessing-data).\n| **Note:** Like [entities](/training/data-storage/room/defining-data), you can run `SELECT` statements against views. However, you cannot run `INSERT`, `UPDATE`, or `DELETE` statements against views.\n\nCreate a view\n-------------\n\nTo create a view, add the\n[`@DatabaseView`](/reference/androidx/room/DatabaseView) annotation to a class.\nSet the annotation's value to the query that the class should represent.\n\nThe following code snippet provides an example of a view: \n\n### Kotlin\n\n```kotlin\n@DatabaseView(\"SELECT user.id, user.name, user.departmentId,\" +\n \"department.name AS departmentName FROM user \" +\n \"INNER JOIN department ON user.departmentId = department.id\")\ndata class UserDetail(\n val id: Long,\n val name: String?,\n val departmentId: Long,\n val departmentName: String?\n)\n```\n\n### Java\n\n```java\n@DatabaseView(\"SELECT user.id, user.name, user.departmentId,\" +\n \"department.name AS departmentName FROM user \" +\n \"INNER JOIN department ON user.departmentId = department.id\")\npublic class UserDetail {\n public long id;\n public String name;\n public long departmentId;\n public String departmentName;\n}\n```\n\nAssociate a view with your database\n-----------------------------------\n\nTo include this view as part of your app's database, include the\n[`views`](/reference/androidx/room/Database#views) property in your app's\n`@Database` annotation: \n\n### Kotlin\n\n```kotlin\n@Database(entities = [User::class],\n views =[UserDetail::class], version = 1)\nabstract class AppDatabase : RoomDatabase() {\n abstract fun userDao(): UserDao\n}\n```\n\n### Java\n\n```java\n@Database(entities = {User.class}, views = {UserDetail.class},\n version = 1)\npublic abstract class AppDatabase extends RoomDatabase {\n public abstract UserDao userDao();\n}\n```"]]