在資料庫中建立檢視表

Room 永久保存程式庫支援 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
}