डेटाबेस में व्यू बनाना

Room परसिस्टेंस लाइब्रेरी, SQLite डेटाबेस व्यू के साथ काम करती है. इनकी मदद से, किसी क्वेरी को क्लास में शामिल किया जा सकता है. क्वेरी के साथ काम करने वाली इन क्लास को Room, व्यू कहता है. इनका इस्तेमाल, डेटा ऐक्सेस ऑब्जेक्ट (डीएओ) में डेटा ऑब्जेक्ट के तौर पर किया जा सकता है.

व्यू बनाना

व्यू बनाने के लिए, किसी क्लास में @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?
)

अपने डेटाबेस से किसी व्यू को लिंक करना

इस व्यू को अपने डेटाबेस में शामिल करने के लिए, अपने ऐप्लिकेशन के @Database एनोटेशन में views प्रॉपर्टी जोड़ें:

@Database(
    entities = [User::class, Department::class],
    views = [UserDetail::class],
    version = 1
)
abstract class AppDatabase : RoomDatabase() {
    abstract fun userDao(): UserDao
}