रूम

रूम परसिस्टेंस लाइब्रेरी से SQLite पर एक ऐब्स्ट्रक्शन लेयर, जो डेटाबेस को बेहतर तरीके से ऐक्सेस करती है. SQLite की सभी सुविधाओं का इस्तेमाल किया जा रहा है.
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
21 अगस्त, 2024 2.6.1 - - 2.7.0-ऐल्फ़ा07

डिपेंडेंसी तय करना

रूम पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट. Google की Maven रिपॉज़िटरी पढ़ें हमारा वीडियो देखें.

रूम की डिपेंडेंसी में ये शामिल हैं टेस्टिंग रूम का माइग्रेशन और रूम RxJava

उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको build.gradle फ़ाइल में ज़रूरत है आपका ऐप्लिकेशन या मॉड्यूल:

ग्रूवी

dependencies {
    def room_version = "2.6.1"

    implementation "androidx.room:room-runtime:$room_version"
    annotationProcessor "androidx.room:room-compiler:$room_version"

    // To use Kotlin annotation processing tool (kapt)
    kapt "androidx.room:room-compiler:$room_version"
    // To use Kotlin Symbol Processing (KSP)
    ksp "androidx.room:room-compiler:$room_version"

    // optional - RxJava2 support for Room
    implementation "androidx.room:room-rxjava2:$room_version"

    // optional - RxJava3 support for Room
    implementation "androidx.room:room-rxjava3:$room_version"

    // optional - Guava support for Room, including Optional and ListenableFuture
    implementation "androidx.room:room-guava:$room_version"

    // optional - Test helpers
    testImplementation "androidx.room:room-testing:$room_version"

    // optional - Paging 3 Integration
    implementation "androidx.room:room-paging:$room_version"
}

Kotlin

dependencies {
    val room_version = "2.6.1"

    implementation("androidx.room:room-runtime:$room_version")
    annotationProcessor("androidx.room:room-compiler:$room_version")

    // To use Kotlin annotation processing tool (kapt)
    kapt("androidx.room:room-compiler:$room_version")
    // To use Kotlin Symbol Processing (KSP)
    ksp("androidx.room:room-compiler:$room_version")

    // optional - Kotlin Extensions and Coroutines support for Room
    implementation("androidx.room:room-ktx:$room_version")

    // optional - RxJava2 support for Room
    implementation("androidx.room:room-rxjava2:$room_version")

    // optional - RxJava3 support for Room
    implementation("androidx.room:room-rxjava3:$room_version")

    // optional - Guava support for Room, including Optional and ListenableFuture
    implementation("androidx.room:room-guava:$room_version")

    // optional - Test helpers
    testImplementation("androidx.room:room-testing:$room_version")

    // optional - Paging 3 Integration
    implementation("androidx.room:room-paging:$room_version")
}

KAPT प्लग इन का इस्तेमाल करने के बारे में जानकारी के लिए, KAPT दस्तावेज़ देखें.

KSP प्लग इन का इस्तेमाल करने के बारे में जानकारी के लिए, KSP क्विक-स्टार्ट दस्तावेज़ देखें.

Kotlin एक्सटेंशन का इस्तेमाल करने के बारे में जानकारी के लिए, ktx दस्तावेज़ देखें.

डिपेंडेंसी के बारे में ज़्यादा जानकारी के लिए, बिल्ड डिपेंडेंसी जोड़ें लेख पढ़ें.

इसके अलावा, Android के अलावा दूसरी लाइब्रेरी के लिए (जैसे, Java या Kotlin सिर्फ़ Gradle मॉड्यूल) रूम एनोटेशन इस्तेमाल करने के लिए, androidx.room:room-common का इस्तेमाल किया जा सकता है.

कंपाइलर विकल्पों को कॉन्फ़िगर करना

रूम में, एनोटेशन प्रोसेसर के ये विकल्प मौजूद हैं.

room.schemaLocation directory अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
इससे, दी गई टेबल में मौजूद JSON फ़ाइलों में डेटाबेस स्कीमा को एक्सपोर्ट करने की सुविधा चालू होती है डायरेक्ट्री. रूम माइग्रेशन देखें हमारा वीडियो देखें.
room.incremental boolean अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
यह Gradle इंक्रीमेंटल एनोटेशन प्रोसेसर चालू करता है. डिफ़ॉल्ट मान true है.
room.generateKotlin boolean अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
Java के बजाय, Kotlin सोर्स फ़ाइलें जनरेट करें. केएसपी ज़रूरी है. डिफ़ॉल्ट मान false है. ज़्यादा जानकारी के लिए वर्शन 2.6.0 के नोट देखें.

रूम Gradle प्लग इन का इस्तेमाल करना

रूम के वर्शन 2.6.0 और उसके बाद वाले वर्शन के साथ, रूम Gradle प्लग इन का इस्तेमाल इन कामों के लिए किया जा सकता है रूम कंपाइलर के लिए विकल्प कॉन्फ़िगर करें. प्लग इन प्रोजेक्ट को ऐसे कॉन्फ़िगर करता है इससे स्कीमा जनरेट होते हैं (जो कंपाइल टास्क का आउटपुट होते हैं और अपने-आप माइग्रेशन के लिए इस्तेमाल किए गए) को सही तरीके से कॉन्फ़िगर किया गया हो, ताकि उसे फिर से जनरेट किया जा सके और कैश मेमोरी में सेव किए जा सकने वाले बिल्ड.

प्लग इन जोड़ने के लिए, अपनी टॉप-लेवल की Gradle बिल्ड फ़ाइल में, प्लगिन और उसका वर्शन.

ग्रूवी

plugins {
    id 'androidx.room' version "$room_version" apply false
}

Kotlin

plugins {
    id("androidx.room") version "$room_version" apply false
}

मॉड्यूल-लेवल की Gradle बिल्ड फ़ाइल में, प्लगिन लागू करें और room का इस्तेमाल करें एक्सटेंशन चुनें.

ग्रूवी

plugins {
    id 'androidx.room'
}

android {
    ...
    room {
        schemaDirectory "$projectDir/schemas"
    }
}

Kotlin

plugins {
    id("androidx.room")
}

android {
    ...
    room {
        schemaDirectory("$projectDir/schemas")
    }
}

रूम Gradle प्लग इन का इस्तेमाल करते समय, schemaDirectory को सेट करना ज़रूरी है. यह रूम कंपाइलर, कंपाइल किए जाने वाले कई टास्क, और उसके बैकएंड को कॉन्फ़िगर करेगा (javac, KAPT, KSP) का इस्तेमाल करके स्कीमा फ़ाइलों को फ़्लेवर वाले फ़ोल्डर में आउटपुट करने के लिए कहा जाता है, उदाहरण के लिए schemas/flavorOneDebug/com.package.MyDatabase/1.json. इन फ़ाइलों को को डेटा स्टोर करने की जगह में चेक किया गया है. इसका इस्तेमाल पुष्टि करने और अपने-आप माइग्रेशन के लिए किया जा सकता है.

कुछ विकल्पों को Room Gradle प्लग इन के सभी वर्शन में कॉन्फ़िगर नहीं किया जा सकता, भले ही ये रूम कंपाइलर के साथ काम करते हों. इस टेबल में, विकल्प चुनकर, Room Gradle प्लग इन का वर्शन दिखाता है, जिसमें उस विकल्प को कॉन्फ़िगर करने के लिए, room एक्सटेंशन का इस्तेमाल करें. अगर आपका वर्शन इससे पहले का है, या अगर यह विकल्प अभी उपलब्ध नहीं है, तो एनोटेशन प्रोसेसर विकल्पों का इस्तेमाल करें.

विकल्प वर्शन से
room.schemaLocation (ज़रूरी) 2.6.0
room.incremental -
room.generateKotlin -

एनोटेशन प्रोसेसर विकल्पों का इस्तेमाल करें

अगर रूम ग्रेडल प्लगिन का इस्तेमाल नहीं किया जा रहा है या आपका मनचाहा विकल्प नहीं है प्लगिन के आपके वर्शन के साथ काम करता है, तो आप इसका इस्तेमाल करके रूम को कॉन्फ़िगर कर सकते हैं व्याख्या प्रोसेसर विकल्प, जैसा कि बिल्ड डिपेंडेंसी जोड़ें. आपने कैसे किया व्याख्या करने के विकल्प इस बात पर निर्भर करते हैं कि रूम के लिए KSP का इस्तेमाल किया जा रहा है या KAPT का.

ग्रूवी

// For KSP
ksp {
    arg("option_name", "option_value")
    // other otions...
}

// For javac and KAPT
android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                arguments += [
                    "option_name":"option_value",
                    // other options...
                    ]
            }
        }
    }
}

Kotlin

// For KSP
ksp {
    arg("option_name", "option_value")
    // other options...
}

// For javac and KAPT
android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                arguments += mapOf(
                    "option_name" to "option_value",
                    // other options...
                )
            }
        }
    }
}

room.schemaLocation एक डायरेक्ट्री है, न कि प्रिमिटिव टाइप. इसलिए, यह इस विकल्प को जोड़ते समय CommandLineArgumentsProvider का इस्तेमाल करना ज़रूरी है, कि Gradle को अप-टू-डेट जांच करते समय इस डायरेक्ट्री के बारे में पता है. रूम डेटाबेस को माइग्रेट करना CommandLineArgumentsProvider को लागू करने की पूरी प्रोसेस दिखाता है, जो स्कीमा की जगह.

सुझाव

आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको नई समस्याओं का पता चलता है या आपको इस लाइब्रेरी को बेहतर बनाने के लिए आइडिया मिल सकते हैं. कृपया, इस मौजूदा समस्याएं इस लाइब्रेरी में जोड़ें. किसी मौजूदा समस्या के लिए अपना वोट दें. इसके लिए ये तरीके अपनाएं: स्टार बटन पर क्लिक करके ऐसा किया जा सकता है.

नई समस्या जोड़ें

समस्या को ट्रैक करने वाले टूल से जुड़ा दस्तावेज़ देखें हमारा वीडियो देखें.

वर्शन 2.7

वर्शन 2.7.0-alpha07

21 अगस्त, 2024

androidx.room:room-*:2.7.0-alpha07 रिलीज़ हो गया है. वर्शन 2.7.0-alpha07 में ये कमिट मौजूद हैं.

नई सुविधाएं

  • रूम Gradle प्लग इन अब एक्सपोर्ट किए गए स्कीमा को Android इंस्ट्रुमेंटेशन टेस्ट के संसाधन स्रोतों में अपने-आप जोड़ देगा, ताकि MigrationTestHelper उनका इस्तेमाल कर सके.

गड़बड़ियां ठीक की गईं

  • initialize फ़ंक्शन में RoomDatabaseConstructor के जनरेट किए गए 'असल' में 'असल' मॉडिफ़ायर मौजूद न होने की समस्या ठीक की गई है. ऐसा तब किया गया है, जब इस तरह के फ़ंक्शन को 'उम्मीद है' एलान में भी बदला गया हो. (359631627)
  • RoomDatabaseConstructor को जनरेट किए गए 'असल' विकल्प से जुड़ी समस्या ठीक की गई है, जो 'उम्मीद है' एलान के दिखने की जानकारी से मेल नहीं खा रही है. (358138953)

वर्शन 2.7.0-alpha06

7 अगस्त, 2024

androidx.room:room-*:2.7.0-alpha06 रिलीज़ हो गया है. वर्शन 2.7.0-alpha06 में ये कमिट मौजूद हैं.

एपीआई में किए गए बदलाव

  • KMP प्रोजेक्ट में RoomDatabase के लिए इंस्टैंशिएशन का सेटअप बदलें.

Kotlin 2.0 कंपाइलेशन मॉडल की वजह से, instantiateImpl() नाम के जनरेट किए जाने वाले फ़ंक्शन का रेफ़रंस देने की रणनीति ज़्यादा बेहतर तरीके से काम करती है. instantiateImpl() रणनीति की जगह दो नए एपीआई, @ConstructedBy और RoomDatabaseConstructor लॉन्च किए गए हैं. नई रणनीति इस तरह है:

  1. RoomDatabaseConstructor को लागू करने वाला अनुमानित ऑब्जेक्ट तय करें

      expect object MyDatabaseCtor : RoomDatabaseConstructor<MyDatabase>
    
  2. @ConstructedBy का इस्तेमाल करके, ऑब्जेक्ट को @Database एलान के साथ जोड़ें

      @Database(...)
      @ConstructedBy(MyDatabaseCtor::class) // NEW
      abstract class MyDatabase : RoomDatabase
    
  3. फ़ैक्ट्री आर्ग्युमेंट पास किए बिना, नया डेटाबेस इंस्टेंस बनाएं

      fun createNewDatabase(path: String) =
        Room.databaseBuilder<AppDatabase>(name = path)
          .setDriver(BundledSQLiteDriver())
          .setQueryCoroutineContext(Dispatchers.IO)
          .build()
    

b/316978491 को ठीक करता है, b/338446862 और b/342905180

  • रूम केएमपी में @RawQuery के लिए RoomRawQuery नाम का एक नया एपीआई जोड़कर काम करना. यह रॉ एसक्यूएल स्ट्रिंग को होल्ड करने और स्टेटमेंट में आर्ग्युमेंट को बाइंड करने के लिए SupportSQLiteQuery से मिलता-जुलता है. @RawQuery व्याख्या करने वाले फ़ंक्शन अब RoomRawQuery को अपने सिंगल पैरामीटर के तौर पर स्वीकार कर सकते हैं. (Iea844, b/330586815)
  • setQueryCallback() का ऐसा ओवरलोड जोड़ें जो CoroutineContext स्वीकार करता हो. (Id66ff, b/309996304)
  • linuxArm64 Kotlin मल्टीप्लैटफ़ॉर्म टारगेट (I139d3, b/338268719) के लिए सहायता जोड़ी गई

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक करें जहां रूम, Android के अलावा अन्य डिवाइसों के लिए, recursiveFetchArrayMap को गलत तरीके से कॉल जनरेट कर सकता है. (710c36, b/352482325)
  • उस समस्या को ठीक कर सकता है जिसमें रूम, केएमपी प्रोजेक्ट में 'कनेक्शन की कोशिश का समय खत्म' के बारे में अपवाद देता है. (fa72d0, b/347737870)
  • अपने-आप होने वाले माइग्रेशन में आने वाली समस्या को ठीक किया गया. यह समस्या, दूसरे टेबल के स्कीमा को नई विदेशी कुंजियों के हिसाब से बदलने से पहले ही, विदेशी कुंजियों की जांच कर लेती है. (7672c0, b/352085724)

वर्शन 2.7.0-alpha05

10 जुलाई, 2024

androidx.room:room-*:2.7.0-alpha05 रिलीज़ हो गया है. वर्शन 2.7.0-alpha05 में ये कमिट मौजूद हैं.

एपीआई में किए गए बदलाव

  • SQLiteKt का नाम बदलकर SQLite और BundledSQLiteKt का नाम बदलकर BundledSQLite किया. (I8b501)

गड़बड़ियां ठीक की गईं

  • उस गड़बड़ी को ठीक किया गया है जिसकी वजह से AndroidSQLiteDriver का इस्तेमाल करते समय, RoomDatabase कनेक्शन टाइम आउट हो जाता है या समस्या आ जाती है. साथ ही, गड़बड़ी ठीक हो जाती है.

वर्शन 2.7.0-alpha04

12 जून, 2024

androidx.room:room-*:2.7.0-alpha04 रिलीज़ हो गया है. वर्शन 2.7.0-alpha04 में ये कमिट मौजूद हैं.

गड़बड़ियां ठीक की गईं

  • रूम के एनोटेशन प्रोसेसर में आई समस्या को ठीक करने से, डीएओ में मल्टी-मैप रिटर्न टाइप तय करने पर, काम न करने वाला केएमपी कोड जनरेट होगा. (b/340983093)
  • उस समस्या को ठीक किया गया है जिसकी वजह से, @Database एनोटेट की गई क्लास में कोई पैकेज न होने पर, जनरेट किया गया डेटाबेस लागू नहीं हो पाता था. (b/342097292)
  • समस्या को ठीक किया गया है, जहां अपने-आप बंद होने और एक से ज़्यादा इंस्टेंस अमान्य होने की सुविधा को चालू करने से, कभी-कभी ConcurrentModificationException हो सकता है. ऐसा तब होता है, जब डेटाबेस कुछ समय से इस्तेमाल में न होने की वजह से अपने-आप बंद हो जाता है.

वर्शन 2.7.0-alpha03

29 मई, 2024

androidx.room:room-*:2.7.0-alpha03 रिलीज़ हो गया है. वर्शन 2.7.0-alpha03 में ये कमिट मौजूद हैं.

गड़बड़ियां ठीक की गईं

  • Kotlin 2.0 और KSP 2.0 से जुड़ी कई समस्याएं ठीक करें. ध्यान दें कि KSP 2 के साथ काम करने वाला Kotlin 2.0 पूरा नहीं है. साथ ही, टीम कई एपीआई और नए कंपाइलर में व्यवहार में होने वाले बदलावों पर काम कर रही है. (b/314151707)

वर्शन 2.7.0-alpha02

14 मई, 2024

androidx.room:room-*:2.7.0-alpha02 रिलीज़ हो गया है. वर्शन 2.7.0-alpha02 में ये कमिट मौजूद हैं.

गड़बड़ियां ठीक की गईं

  • कई KSP की समस्याओं को ठीक किया गया.

वर्शन 2.7.0-alpha01

1 मई, 2024

androidx.room:room-*:2.7.0-alpha01 रिलीज़ हो गया है. वर्शन 2.7.0-alpha01 में ये कमिट मौजूद हैं.

नई सुविधाएं

  • Kotlin Multiplatform (KMP) सहायता: इस रिलीज़ में, रूम को Kotlin मल्टीप्लैटफ़ॉर्म (केएमपी) लाइब्रेरी में बदलने के लिए उसमें बदलाव किया गया है. हालांकि, अब भी कुछ काम करना बाकी है, लेकिन इस रिलीज़ में रूम का नया वर्शन लॉन्च किया गया है. इस वर्शन की ज़्यादातर सुविधाएं “सामान्य” (सामान्य सिस्टम के हिसाब से) हैं. इन सुविधाओं को मल्टीप्लैटफ़ॉर्म के तौर पर बनाया गया है. फ़िलहाल, Android, iOS, JVM (डेस्कटॉप), Mac, और स्थानीय Linux प्लैटफ़ॉर्म ही इस्तेमाल किए जा सकते हैं. जिन प्लैटफ़ॉर्म पर ये सुविधाएं काम नहीं करतीं उन्हें सभी सुविधाओं के साथ उपलब्ध करा दिया जाएगा. ऐसा, आने वाले रूम की रिलीज़ में किया जाएगा.

रूम केएमपी का इस्तेमाल शुरू करने के बारे में ज़्यादा जानकारी के लिए, कृपया रूम केएमपी का आधिकारिक दस्तावेज़ देखें.

  • अगर केएसपी के ज़रिए प्रोसेस की जाती है, तो KSP पर Kotlin कोड जनरेट करने की सुविधा डिफ़ॉल्ट रूप से चालू होती है. KAPT या सिर्फ़ Java प्रोजेक्ट के लिए, रूम अब भी Java सोर्स जनरेट करेगा.

एपीआई में किए गए बदलाव

  • Room.databaseBuilder() का एक ओवरलोड जोड़ा गया है, जो लैम्डा पैरामीटर लेता है. इसे रूम जनरेट किए गए फ़ंक्शन के साथ इस्तेमाल किया जाता है, ताकि जनरेट किए गए RoomDatabase को लागू करते समय रिफ़्लेक्शन का इस्तेमाल न हो. इस्तेमाल का उदाहरण:
Room.databaseBuilder<MyDatabase>(
    context = appContext,
    name = dbFilePath,
    factory =  { MyDatabase::class.instantiateImpl() }
)
  • CoroutineContext की मदद से रूम को कॉन्फ़िगर करने के लिए, बिल्डर में एपीआई जोड़ा गया है: RoomDatabase.Builder.setQueryCoroutineContext. ध्यान दें कि RoomDatabase को सिर्फ़ setQueryExecutor का इस्तेमाल करके या कोरूटीन कॉन्टेक्स्ट के साथ कॉन्फ़िगर किया जा सकता है. हालांकि, दोनों में से किसी एक के साथ इसे कॉन्फ़िगर नहीं किया जा सकता.
  • SQLite ड्राइवर की मदद से रूम कॉन्फ़िगर करने के लिए, एक एपीआई जोड़ा गया है: RoomDatabase.Builder.setDriver(). SQLite ड्राइवर एपीआई के बारे में ज़्यादा जानकारी के लिए, SQLite KMP दस्तावेज़ देखें
  • ड्राइवर एपीआई से मौजूदा SQLiteConnection को ऐक्सेस करने के लिए एपीआई जोड़े गए हैं: RoomDatabase.useReaderConnection और RoomDatabase.useWriterConnection.
  • Verios Room से जुड़े कॉलबैक में अब एक ओवरलोडेड वर्शन है जिसे SupportSQLiteDatabase के बजाय SQLiteConnection मिलता है. केएमपी प्रोजेक्ट पर माइग्रेट करते समय, इन्हें ओवरराइड कर दिया जाता है. किसी Android ऐप्लिकेशन में कमरे के इस्तेमाल को सामान्य केएमपी मॉड्यूल में माइग्रेट करने के बारे में ज़्यादा जानकारी के लिए, डेटा को दूसरी जगह भेजने से जुड़ी गाइड देखें. कॉलबैक:
    • Migration.migrate(SQLiteConnection)
    • AutoMigrationSpec.onPostMigrate(SQLiteConnection)
    • RoomDatabase.Callback.onCreate(SQLiteConnection)
    • RoomDatabase.Callback.onDestructiveMigration(SQLiteConnection)
    • RoomDatabase.Callback.onOpen(SQLiteConnection)
  • KTX आर्टफ़ैक्ट androidx.room:room-ktx को उसके सभी एपीआई के साथ androidx.room:room-runtime में मर्ज कर दिया गया है. आर्टफ़ैक्ट अब खाली है. कृपया इसे अपनी डिपेंडेंसी सूची से हटाएं.

वर्शन 2.6

वर्शन 2.6.1

29 नवंबर, 2023

androidx.room:room-*:2.6.1 रिलीज़ हो गया है. वर्शन 2.6.1 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • जनरेट किए गए कोड में मौजूद समस्या ठीक की गई, जहां EntityCursorConverter में डबल कॉलम की डिफ़ॉल्ट वैल्यू को 0.0 के बजाय 0 पर सेट किया जा रहा था. फ़्लोट टाइप कॉलम के लिए, मिलते-जुलते एज-केस में संभावित सुधार भी शामिल किया गया है. (Id75f5, b/304584179)
  • PagingSource लोड किए गए अपवादों को, अब थ्रॉउबल वाले LoadResult.Error के LoadStateUpdate के तौर पर लागू किया जाएगा. गड़बड़ी की इस स्थिति का पता PagingDataAdapter.loadStateFlow(Views) या LazyPagingItems.loadState(Compose) से लगाया जा सकता है. ध्यान दें कि यह व्यवहार में होने वाले एक बदलाव को दिखाता है, जहां पहले की लोड की गड़बड़ियां, लोड को ट्रिगर करने वाले dao तरीके से दिए गए अपवाद के रूप में बबल अप होती हैं. (I93887, b/302708983)

वर्शन 2.6.0

18 अक्टूबर, 2023

androidx.room:room-*:2.6.0 रिलीज़ हो गया है. वर्शन 2.6.0 में ये कमियां शामिल हैं.

2.5.0 के बाद के अहम बदलाव

  • Kotlin कोड जनरेशन (या “Kotlin CodeGen”) को चालू करने का विकल्प अब रूम केएसपी में उपलब्ध है. (4297ec0). रूम में Kotlin CodeGen चालू करने के लिए, केएसपी के लिए अपने प्रोसेसर विकल्पों में room.generateKotlin विकल्प का नाम जोड़ें. केएसपी के लिए, प्रोसेसर के विकल्पों को पास करने के तरीके के बारे में ज़्यादा जानकारी के लिए, केएसपी दस्तावेज़ देखें.

ध्यान दें: Kotlin CodeGen का इस्तेमाल करते समय, इस बात का ध्यान रखना ज़रूरी है कि कुछ अन्य पाबंदियां भी जोड़ी गई हैं. Kotlin CodeGen में डीएओ गेटर या डीएओ क्वेरी के तौर पर ऐब्स्ट्रैक्ट प्रॉपर्टी को अनुमति नहीं है. इसके बजाय, इस तरह की गलत धारणा से बचने के लिए कि प्रॉपर्टी वैल्यू में बदलाव नहीं किया जा सकता और उसका स्टोर किया गया नतीजा तय होता है. इसके बजाय, इसे फ़ंक्शन के तौर पर दोबारा लिखने की उम्मीद की जाती है. एक और पाबंदी यह भी जोड़ी गई है कि Kotlin CodeGen के लिए रूम में अब बिना वैल्यू वाले कलेक्शन रिटर्न टाइप की अनुमति नहीं है.

चेतावनी: आपको लग सकता है कि Kotlin CodeGen का इस्तेमाल करते समय आपके प्रोजेक्ट, शून्य होने की संभावना के मामले में ज़्यादा सख्त हैं. Kotlin CodeGen में, टाइप आर्ग्युमेंट की शून्यता ज़रूरी है. Java में इस प्रोसेस को ज़्यादातर अनदेखा किया जाता है. उदाहरण के लिए, मान लें कि आपके पास `Flow<foo\>` का रिटर्न टाइप है और टेबल खाली है. Java CodeGen में इससे कोई समस्या नहीं होगी. हालांकि, Kotlin CodeGen में आपको एक गड़बड़ी मिलेगी. इससे बचने के लिए, यह मानते हुए कि कोई खाली नहीं है, आपको `Flow<foo?\>` का इस्तेमाल करना होगा. </foo?\></foo\>

  • रूम Gradle प्लग इन के लिए नया आर्टफ़ैक्ट androidx.room आईडी वाले रूम में जोड़ दिया गया है. यह Gradle एनोटेशन प्रोसेसर विकल्पों के ज़रिए, स्कीमा के इनपुट और आउटपुट होने से जुड़ी कई मौजूदा समस्याओं को हल करता है. ज़्यादा जानकारी के लिए, रूम वर्शन 2.6.0-ऐल्फ़ा02 प्रॉडक्ट की जानकारी देखें.
  • रूम इकाइयों में वैल्यू क्लास अब KSP के लिए काम करती हैं. (4194095)
  • डीएओ फ़ंक्शन में, नेस्ट किए गए मैप रिटर्न टाइप अब रूम में काम करते हैं. (I13f48, 203008711)

वर्शन 2.6.0-rc01

20 सितंबर, 2023

androidx.room:room-*:2.6.0-rc01 रिलीज़ हो गया है. वर्शन 2.6.0-rc01 में ये कमिट हैं.

वर्शन 2.6.0-beta01

23 अगस्त, 2023

androidx.room:room-*:2.6.0-beta01 रिलीज़ हो गया है. वर्शन 2.6.0-beta01 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • अपसर्ट के दौरान SQLite अपवाद होने पर मिलने वाले खास केस को हैंडल करते समय, जब अपसर्ट के दौरान 2067 SQLITE_CONSTRAINT_UNIQUE अपवाद दिखता है, तो अपसर्ट को अपडेट करना चाहिए. (If2849, b/243039555)

वर्शन 2.6.0-alpha03

9 अगस्त, 2023

androidx.room:room-*:2.6.0-alpha03 रिलीज़ हो गया है. वर्शन 2.6.0-alpha03 में ये कमियां हैं.

नई सुविधाएं

  • डीएओ फ़ंक्शन में, नेस्ट किए गए मैप रिटर्न टाइप अब रूम में काम करते हैं. (I13f48, 203008711)

एपीआई में किए गए बदलाव

  • @MapInfo की जगह लेने के लिए, @MapColumn नाम का एक नया तरह का एनोटेशन बनाया गया है. यह अब काम नहीं करता. @MapInfo एनोटेशन में दिए गए हर कॉलम नाम (keyColumnName, valueColumnName या दोनों) के लिए, आपको सिर्फ़ columnName के साथ @MapColumn एनोटेशन का एलान करना होगा. साथ ही, डीएओ फ़ंक्शन के रिटर्न टाइप में रेफ़रंस वाले खास टाइप (मैप की कुंजी या वैल्यू) वाले आर्ग्युमेंट पर, एनोटेशन का इस्तेमाल करना होगा. ऐसा इसलिए होता है, क्योंकि @MapColumn एनोटेशन का इस्तेमाल @MapInfo जैसे फ़ंक्शन के बजाय, डीएओ फ़ंक्शन के रिटर्न टाइप में सीधे तौर पर टाइप आर्ग्युमेंट पर किया जाता है. ज़्यादा जानकारी के लिए, कृपया @MapColumn दस्तावेज़ देखें. (Ib0305, b/203008711)
  • काम करने की सुविधा में रुकावट की व्याख्या करने के लिए, एपीआई फ़ाइलों को अपडेट किया गया (I8e87a, b/287516207)
  • रूम Gradle प्लग इन के एपीआई को इस तरह अपडेट किया गया है कि हर बार अलग-अलग वैरिएंट के लिए कॉन्फ़िगरेशन की ज़रूरत न हो. इसका मतलब है कि प्लगिन, कई डायरेक्ट्री बनाए बिना सभी वैरिएंट के लिए ग्लोबल लोकेशन स्वीकार कर सकता है. इससे, आसानी से माइग्रेशन हो जाता है. हालांकि, यह प्लगिन (फिर से जनरेट किए जा सकने वाले और कैश किए जा सकने वाले बिल्ड) के फ़ायदे बनाए रखते हुए, मैन्युअल तौर पर फ़्लेवर या टाइप स्कीमा को कॉन्फ़िगर करने के हिसाब से काफ़ी सुविधाजनक है. (I09d6f, b/278266663)

गड़बड़ियां ठीक की गईं

  • QueryInterceptorStatement में, मेमोरी लीक होने के संभावित जोखिम को ठीक किया गया. (I193d1)
  • QueryInterceptorDatabase execSQL() फ़ंक्शन में गलत व्यवहार को ठीक किया गया. (Iefdc8)

वर्शन 2.6.0-alpha02

21 जून, 2023

androidx.room:room-*:2.6.0-alpha02 रिलीज़ हो गया है. वर्शन 2.6.0-alpha02 में ये कमियां हैं.

रूम Gradle प्लग इन

इस नई रिलीज़ में आईडी androidx.room वाले रूम Gradle प्लग इन के लिए एक नया आर्टफ़ैक्ट शामिल है, जो Gradle एनोटेशन प्रोसेसर विकल्पों के ज़रिए स्कीमा के इनपुट और आउटपुट होने से जुड़ी कई मौजूदा समस्याओं को हल करता है. रूम Gradle प्लग इन, प्रोजेक्ट को इस तरह कॉन्फ़िगर करता है कि जनरेट किए गए ऐसे स्कीमा जिनका अपने-आप माइग्रेशन के लिए इस्तेमाल किया जाता है और जो कंपाइल किए गए टास्क के आउटपुट होते हैं उन्हें फिर से बनाए जा सकने वाले और कैश किए जा सकने वाले बिल्ड पाने के लिए सही तरीके से कॉन्फ़िगर किया जाता है. यह प्लगिन, बेस स्कीमा की जगह को कॉन्फ़िगर करने के लिए डीएसएल की सुविधा देता है:

room {
    schemaDirectory("$projectDir/schemas/")
}

इसके बाद प्लगिन, रूम कंपाइलर, कंपाइल टास्क, और उसके बैकएंड (javac, KAPT, KSP) को कॉन्फ़िगर करेगा, ताकि स्कीमा फ़ाइलों को फ़्लेवर वाले फ़ोल्डर, यानी schemas/flavorOneDebug/com.package.MyDatabase/1.json में आउटपुट किया जा सके. हमेशा की तरह, इन फ़ाइलों को डेटा स्टोर करने की जगह में चेक-इन किया जाता है, ताकि पुष्टि करने और अपने-आप माइग्रेशन होने की सुविधा के लिए उनका इस्तेमाल किया जा सके. एनोटेशन प्रोसेसर के बजाय प्लगिन का इस्तेमाल करने के लिए माइग्रेट करने पर, मौजूदा स्कीमा फ़ाइलों को प्लगिन से बनाई गई जनरेट की गई फ़्लेवर डायरेक्ट्री में कॉपी करना होगा. माइग्रेशन के लिए, यह एक बार की जाने वाली कार्रवाई है. इसे मैन्युअल तौर पर करना पड़ता है. सुझाव, शिकायत या राय का जवाब मिलने और प्लगिन के सही से काम करने के बाद, developers.android.com में मौजूद स्कीमा दस्तावेज़ को अपडेट किया जाएगा. इसलिए, कृपया इसे आज़माएं.

एपीआई में किए गए बदलाव

  • एसएएम कन्वर्ज़न के इस्तेमाल की अनुमति देने के लिए, RoomDatabase.QueryCallback को एक फ़ंक्शनल इंटरफ़ेस के तौर पर बताया गया है. (Iab8ea, b/281008549)

गड़बड़ियां ठीक की गईं

  • Java से Kotlin में रूम सोर्स के माइग्रेशन के बाद, Robolectric में डेटाबेस को इंस्टैंशिएट करते समय आने वाली समस्या को ठीक करना. (Ic053c, b/274924903)

वर्शन 2.6.0-alpha01

22 मार्च, 2023

androidx.room:room-*:2.6.0-alpha01 रिलीज़ हो गया है. वर्शन 2.6.0-alpha01 में ये कमियां हैं.

नई सुविधाएं

  • KSP के लिए रूम में वैल्यू क्लास की सुविधा. रूम अब इकाइयों में वैल्यू क्लास के साथ काम करता है. (4194095)
  • Kotlin कोड जनरेशन(या “Kotlin CodeGen”) को अब रूम (4297ec0) में चालू किया जा सकता है. रूम में Kotlin CodeGen चालू करने के लिए, केएसपी के लिए अपने प्रोसेसर विकल्पों में room.generateKotlin विकल्प का नाम जोड़ें. केएसपी के लिए, प्रोसेसर के विकल्पों को पास करने के तरीके के बारे में ज़्यादा जानकारी के लिए, केएसपी दस्तावेज़ देखें.

ध्यान दें: Kotlin CodeGen का इस्तेमाल करते समय, इस बात का ध्यान रखना ज़रूरी है कि कुछ अन्य पाबंदियां भी जोड़ी गई हैं. Kotlin CodeGen में डीएओ गेटर या डीएओ क्वेरी के तौर पर ऐब्स्ट्रैक्ट प्रॉपर्टी को अनुमति नहीं है. इसके बजाय, इस तरह की गलत धारणा से बचने के लिए कि प्रॉपर्टी वैल्यू में बदलाव नहीं किया जा सकता और उसका स्टोर किया गया नतीजा तय होता है. इसके बजाय, इसे फ़ंक्शन के तौर पर दोबारा लिखने की उम्मीद की जाती है. एक और पाबंदी यह भी जोड़ी गई है कि Kotlin CodeGen के लिए रूम में अब बिना वैल्यू वाले कलेक्शन रिटर्न टाइप की अनुमति नहीं है.

चेतावनी: आपको लग सकता है कि Kotlin CodeGen का इस्तेमाल करते समय आपके प्रोजेक्ट, शून्य होने की संभावना के मामले में ज़्यादा सख्त हैं. Kotlin CodeGen में, टाइप आर्ग्युमेंट की शून्यता ज़रूरी है. Java में इस प्रोसेस को ज़्यादातर अनदेखा किया जाता है. उदाहरण के लिए, मान लें कि आपके पास `Flow<foo\>` का रिटर्न टाइप है और टेबल खाली है. Java CodeGen में इससे कोई समस्या नहीं होगी. हालांकि, Kotlin CodeGen में आपको एक गड़बड़ी मिलेगी. इससे बचने के लिए, यह मानते हुए कि कोई खाली नहीं है, आपको `Flow<foo?\>` का इस्तेमाल करना होगा. </foo?\></foo\>

एपीआई में किए गए बदलाव

  • डीएओ तरीके से रिटर्न टाइप में, शून्य हो सकने वाले कलेक्शन के इस्तेमाल से बचना. (I777dc, b/253271782, b/259426907)
  • ऐसा फ़्लो बनाने के लिए एपीआई जोड़ें जिससे अमान्य ट्रैकर में बदलाव होता है. एपीआई, ऐसी स्ट्रीम बनाने के लिए फ़ायदेमंद है जिन्हें डेटाबेस में हुए बदलावों के हिसाब से काम करने की ज़रूरत होती है. (I8c790, b/252899305)

गड़बड़ियां ठीक की गईं

  • Kotlin कोडजन में, ऐब्सट्रैक्ट प्रॉपर्टी को डीएओ गेटर या डीएओ क्वेरी के तौर पर अनुमति न दें. इसके बजाय, उन्हें फ़ंक्शन के तौर पर फिर से लिखा जाना चाहिए, ताकि प्रॉपर्टी की वैल्यू में बदलाव न किए जा सकने वाले न होने और उसका स्टोर किया गया नतीजा तय न हो. (If6a13, b/127483380, b/257967987)

वर्शन 2.5.2

वर्शन 2.5.2

21 जून, 2023

androidx.room:room-*:2.5.2 रिलीज़ हो गया है. वर्शन 2.5.2 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • kotlinx-metadata-jvm के साथ काम न करने से जुड़ी समस्या ठीक करें. (386d5c)
  • उस समस्या को ठीक करें जिसकी वजह से, Robolectric टेस्ट में इस्तेमाल किए जाने पर, रूम में गड़बड़ी होती है. (f79bea, b/274924903)

वर्शन 2.5.1

वर्शन 2.5.1

22 मार्च, 2023

androidx.room:room-*:2.5.1 रिलीज़ हो गया है. वर्शन 2.5.1 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • अगर डेटाबेस पहले से खुला है, तो FrameworkSQLiteHelper में डेटाबेस पैरंट डायरेक्ट्री की जांच करने से बचें. (5de86b8)
  • यह देखने के लिए कि डेटाबेस पहले से खुला है या नहीं, isOpenInternal जांच का इस्तेमाल करें. (e91fb35)
  • रूम के acquireTransactionThread() में, फिर से साइन इन किए गए केस को बेहतर तरीके से हैंडल करने की सुविधा अब उपलब्ध है. (219f98b). निलंबित ट्रांज़ैक्शन के दौरान, रूम, ट्रांज़ैक्शन परफ़ॉर्मर के थ्रेड का इस्तेमाल करता है और इसमें इवेंट लूप चालू करता है. साथ ही, डेटाबेस से जुड़ी कार्रवाइयों को निलंबित करता है, ताकि वे सभी ट्रांज़ैक्शन कोरूटीन में शामिल हो जाएं. आम तौर पर, यह उम्मीद की जाती है कि ट्रांज़ैक्शन थ्रेड, शुरू होने वाले थ्रेड से अलग होगा. हालांकि, कुछ मामलों में दोनों एक जैसे होते हैं. फिर से साइन इन करने के ऐसे मामलों को मैनेज करने के लिए, withTransaction() को फिर से रीफ़ैक्टर किया गया, ताकि यह कंट्रोल जॉब पर निर्भर न रहे. इसके बजाय, यह ट्रांज़ैक्शन थ्रेड में मौजूद runBlocking में से, निलंबित किए गए ट्रांज़ैक्शन ब्लॉक को लागू करेगा.

वर्शन 2.5.0

वर्शन 2.5.0

22 फ़रवरी, 2023

androidx.room:room-paging-guava:2.5.0, androidx.room:room-paging-rxjava2:2.5.0, और androidx.room:room-paging-rxjava3:2.5.0 रिलीज़ हुए हैं. वर्शन 2.5.0 में ये कमियां शामिल हैं.

वर्शन 2.5.0

11 जनवरी, 2023

androidx.room:room-*:2.5.0 रिलीज़ हो गया है. वर्शन 2.5.0 में ये कमियां शामिल हैं.

2.4.0 के बाद से हुए अहम बदलाव

  • room-runtime के सभी सोर्स को Java से Kotlin में बदल दिया गया है. ध्यान दें कि अगर आपका कोड, Kotlin में है, तो आपको सोर्स के साथ काम न करने से जुड़ी समस्याएं आ सकती हैं. ऐसा, Kotlin में लाइब्रेरी के कन्वर्ज़न की वजह से हो सकता है. उदाहरण के लिए, एक ऐसे सोर्स में किया गया बदलाव जो काम नहीं करता. इसका मतलब है कि InvalidationTracker में अब आपको Observer में onInvalidate() का एलान करना होगा, ताकि MutableSet के बजाय Set टाइप का पैरामीटर हो. इसके अलावा, कुछ गेटर मेथड को ऐसी प्रॉपर्टी में बदल दिया गया है जिनके लिए Kotlin फ़ाइलों पर प्रॉपर्टी ऐक्सेस सिंटैक्स की ज़रूरत होती है. अगर कोई गड़बड़ी होती है, तो कृपया गड़बड़ी की शिकायत करें.
  • एक नया शॉर्टकट एनोटेशन जोड़ा गया, @Upsert, जो यूनीकनेस विवाद न होने पर इकाई को शामिल करने की कोशिश करता है या कोई टकराव होने पर इकाई को अपडेट करता है. (I7aaab, b/241964353)
  • रूम पेजिंग की सुविधा के लिए, रूम पेजिंग से जुड़े नए आर्टफ़ैक्ट room-paging-rxjava2, room-paging-rxjava3, और room-paging-guava जोड़े गए हैं.
  • @MapInfo (Icc4b5) में, साफ़ तौर पर जानकारी देने के लिए, कुंजी और वैल्यू टेबल के नाम देने के लिए एपीआई जोड़े गए

वर्शन 2.5.0-rc01

7 दिसंबर, 2022

androidx.room:room-*:2.5.0-rc01 रिलीज़ हो गया है. वर्शन 2.5.0-rc01 में ये कमियां शामिल हैं.

  • यह रिलीज़, 2.5.0-beta02 की तरह है.

वर्शन 2.5.0-beta02

9 नवंबर, 2022

androidx.room:room-*:2.5.0-beta02 रिलीज़ हो गया है. वर्शन 2.5.0-beta02 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • उन अलग-अलग एपीआई को ठीक करें जो Java के अरे के व्यवहार से मिलान करने के लिए, इन-वैरिएंट (Array<Any?>) से कॉन्ट्रावैरिएंट (Array<out Any?>) तक क्वेरी आर्ग्युमेंट को लेते हैं. (b/253531073)

वर्शन 2.5.0-beta01

5 अक्टूबर, 2022

androidx.room:room-*:2.5.0-beta01 रिलीज़ हो गया है. वर्शन 2.5.0-beta01 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • @Upsert के साथ काम करने वाले कम से कम वर्शन को एपीआई 16 पर सीमित करें. ऐसा इसलिए होता है, क्योंकि पुराने एपीआई में, मुख्य कुंजी की कंस्ट्रक्शन की समस्या की पहचान नहीं की जा सकती. (I5f67f, b/243039555)

गड़बड़ियां ठीक की गईं

  • शैडो टेबल की स्कीमा .json फ़ाइलों में गलत तरीके से एक्सपोर्ट किए जाने की समस्या ठीक की गई. इससे वे खराब हो रही थीं. (I4f83b, b/246751839)

वर्शन 2.5.0-alpha03

24 अगस्त, 2022

androidx.room:room-*:2.5.0-alpha03 रिलीज़ हो गया है. वर्शन 2.5.0-alpha03 में ये कमियां हैं.

नई सुविधाएं

  • एक नया शॉर्टकट एनोटेशन जोड़ा गया, @Upsert, जो यूनीकनेस विवाद न होने पर इकाई को शामिल करने की कोशिश करता है या कोई टकराव होने पर इकाई को अपडेट करता है. (I7aaab, b/241964353)

गड़बड़ियां ठीक की गईं

  • अपने-आप माइग्रेट होने वाली विदेशी कुंजी की कंस्ट्रेंट जांच के दौरान, रूम में अब IllegalStateException के बजाय SQLiteConstraintException का इस्तेमाल किया जाएगा. (I328 दिन)
  • getOpenHelper, getQueryExecutor, और getTransactionExecutor के गेटर / प्रॉपर्टी के लिए, Kotlin सोर्स के साथ काम न करने वाले बदलाव को ठीक करें. (Iad0ac)

वर्शन 2.5.0-alpha02

1 जून, 2022

androidx.room:room-*:2.5.0-alpha02 रिलीज़ हो गया है. वर्शन 2.5.0-alpha02 में ये कमियां हैं.

नई सुविधाएं

  • रूम पेजिंग में सहायता के लिए, room-paging नए आर्टफ़ैक्ट room-paging-rxjava2, room-paging-rxjava3, और room-paging-guavaजोड़े गए हैं.(41a1d4,b/203666906),(eb6098,b/203666906),(1b9ae4,b/903)

एपीआई में किए गए बदलाव

  • room-runtime के सभी हिस्सों को Java से Kotlin में बदल दिया गया है. (If2069, b/206859668),(Ie4b55, b/206859668), (I697ee, b/206859668), (I96c25) {185b

    ध्यान दें: लाइब्रेरी के Kotlin में कन्वर्ज़न की वजह से, आपको सोर्स के साथ काम न करने से जुड़ी समस्याएं आ सकती हैं. अगर आपका कोड Kotlin में था और रूम के पुराने वर्शन को कॉल कर रहा था, तो नए वर्शन को इन मामलों को हैंडल करना होगा. उदाहरण के लिए, एक ऐसे सोर्स में किया गया बदलाव जो काम नहीं करता. इसका मतलब है कि InvalidationTracker में अब आपको Observer में onInvalidate() का एलान करना होगा, ताकि MutableSet के बजाय Set टाइप का पैरामीटर हो.

  • @MapInfo (Icc4b5) में, साफ़ तौर पर जानकारी देने के लिए, कुंजी और वैल्यू टेबल के नाम देने के लिए एपीआई जोड़े गए
  • प्रॉपर्टी गैटर में @Ignore को फिर से अनुमति देने के लिए, सोर्स के साथ काम करने से जुड़ी समस्या को ठीक करें. (Ifc2fb)

गड़बड़ियां ठीक की गईं

  • डुप्लीकेट कॉलम रिज़ॉल्यूशन ह्यूरिस्टिक एल्गोरिदम. रूम अब मल्टीमैप क्वेरी में साफ़ तौर पर जानकारी न देने वाले कॉलम को ठीक करने की कोशिश करेगा. इससे, एक जैसे नाम वाली टेबल वाले जॉइन को नतीजे डेटा ऑब्जेक्ट के साथ सही तरीके से मैप करने की अनुमति मिलती है. (I4b444, b/201306012, b/212279118)

वर्शन 2.5.0-alpha01

23 फ़रवरी, 2022

androidx.room:room-*:2.5.0-alpha01 रिलीज़ हो गया है. वर्शन 2.5.0-alpha01 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • उस समस्या को ठीक किया गया है जहां Kotlin सोर्स में रूम @IntDef के इस्तेमाल को लागू नहीं किया जा रहा था. (I75f41, b/217951311)
  • प्रॉपर्टी गैटर में @Query को फिर से अनुमति देने के लिए, सोर्स के साथ काम करने से जुड़ी समस्या को ठीक किया गया है. (I0a09b)
  • रूम-सामान्य को Java से Kotlin में बदला गया. (I69c48, b/206858235)

    ध्यान दें: आपको सोर्स के साथ काम न करने से जुड़ी समस्याएं आ सकती हैं, क्योंकि लाइब्रेरी को Kotlin में कन्वर्ज़न के दौरान कुछ प्रॉपर्टी को कंपैनियन ऑब्जेक्ट में ले जाया गया है. अगर आपका कोड Kotlin में था और रूम के पुराने वर्शन से कॉल कर रहा था, तो नए वर्शन में ".Companion" होना ज़रूरी है प्रत्यय का इस्तेमाल करें.

  • रूम से जुड़े माइग्रेशन को Java से Kotlin में बदला गया. (I2724b, b/206858622)
  • room-runtime में मौजूद paging मिलती-जुलती फ़ाइलों को Java से Kotlin में बदला. (I82fc8, b/206859668)
  • एक से ज़्यादा प्रोसेस को पहली बार बनाने वाले डेटाबेस बनाने और माइग्रेट करने की सुविधा को सुरक्षित रखने के लिए, FrameworkSQLite* लेवल पर मल्टी-प्रोसेस लॉक और इसके इस्तेमाल के लिए एपीआई जोड़ा गया. (Ied267, b/193182592)

गड़बड़ियां ठीक की गईं

  • Kotlin सोर्स में इंटरनल प्रॉपर्टी के लिए सपोर्ट जोड़ा गया. रूम में यह मामूली बदलाव है, जहां यह सोर्स का इस्तेमाल करेगा फ़ंक्शन का नाम और प्रॉपर्टी से गेटर/सेटर के तौर पर मेल खाना (पहले, इसमें फ़ंक्शन के JVM नाम का इस्तेमाल किया जा रहा था, जो . अगर गेटर/सेटर से मिलान करने के लिए, कस्टम @JvmName एनोटेशन का इस्तेमाल किया जा रहा है है, तो कृपया अपडेट (If6531, b/205289020)

वर्शन 2.4.3

वर्शन 2.4.3

27 जुलाई, 2022

androidx.room:room-*:2.4.3 रिलीज़ हो गया है. वर्शन 2.4.3 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक कर दिया गया है जिसकी वजह से रूम, Kotlin 1.7 (b/236612358) में सस्पेंड फ़ंक्शन को नहीं पहचान पाता था

वर्शन 2.4.2

वर्शन 2.4.2

23 फ़रवरी, 2022

androidx.room:room-*:2.4.2 रिलीज़ हो गया है. वर्शन 2.4.2 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • -Xjvm-default=all या इसके बराबर की वैल्यू को कंपाइल करने की वजह से, डिफ़ॉल्ट इंटरफ़ेस तरीके को जनरेट करने वाली बॉडी के साथ, डाओ @Transaction सस्पेंड फ़ंक्शन के लिए कोड जनरेट करने से जुड़ी समस्या को हल किया गया. (Ia4ce5)
  • गड़बड़ी को ठीक करना जहां रूम, Array<ByteArray> के रिटर्न टाइप वाली क्वेरी के तरीके के लिए कोड जनरेट करता है. (If086e, b/213789489)

वर्शन 2.4.1

वर्शन 2.4.1

12 जनवरी, 2022

androidx.room:room-*:2.4.1 रिलीज़ हो गया है. वर्शन 2.4.1 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • Kotlin सोर्स में इंटरनल प्रॉपर्टी के लिए सपोर्ट जोड़ा गया. रूम में यह मामूली बदलाव है, जहां यह सोर्स का इस्तेमाल करेगा फ़ंक्शन का नाम और प्रॉपर्टी से गेटर/सेटर के तौर पर मेल खाना (पहले, इसमें फ़ंक्शन के JVM नाम का इस्तेमाल किया जा रहा था, जो . अगर गेटर/सेटर से मिलान करने के लिए, कस्टम @JvmName एनोटेशन का इस्तेमाल किया जा रहा है है, तो कृपया अपडेट (If6531, b/205289020)

वर्शन 2.4.0

वर्शन 2.4.0

15 दिसंबर, 2021

androidx.room:room-*:2.4.0 रिलीज़ हो गया है. वर्शन 2.4.0 में ये कमियां शामिल हैं.

2.3.0 के बाद से हुए अहम बदलाव

  • अपने-आप माइग्रेशन: रूम अब अपने-आप माइग्रेशन जनरेट करने के लिए एक एपीआई की सुविधा देता है. हालांकि, इसके लिए ज़रूरी है कि स्कीमा एक्सपोर्ट किए जा रहे हों. रूम को यह बताने के लिए कि उसे अपने-आप माइग्रेट होने की सुविधा जनरेट करनी चाहिए, एक नई प्रॉपर्टी @Database#autoMigrations का इस्तेमाल करके, अलग-अलग वर्शन से अपने-आप माइग्रेट होने का एलान किया जा सकता है. जब रूम को टेबल और कॉलम के नाम बदलने या मिटाने के बारे में ज़्यादा जानकारी की ज़रूरत होती है, तो @AutoMigration एनोटेशन, इस तरह के इनपुट वाली स्पेसिफ़िकेशन क्लास का एलान कर सकता है. ज़्यादा जानकारी के लिए, @AutoMigration दस्तावेज़ देखें.
  • अपने-आप होने वाले माइग्रेशन में डिपेंडेंसी इंजेक्शन: @ProvidedAutoMigrationSpec एक नया एपीआई है. इसका इस्तेमाल करके यह बताया जाता है कि RoomDatabase.Builder#addAutoMigrationSpec() के ज़रिए रनटाइम के दौरान AutoMigrationSpec दिया जाएगा. इसकी मदद से, डिपेंडेंसी इंजेक्शन फ़्रेमवर्क को जटिल डिपेंडेंसी की ज़रूरत होने पर इस तरह के निर्देश दिए जा सकते हैं.
  • माइग्रेशन टेस्ट हेल्पर सहायता: रूम के MigrationTestHelper को एक नया कंस्ट्रक्टर एपीआई देकर, अपने-आप माइग्रेशन की सुविधा देने के लिए अपडेट किया गया है जिसमें डेटाबेस क्लास को टेस्ट किया जा रहा है. इससे हेल्पर को runMigrationsAndValidate के दौरान, अपने-आप होने वाले माइग्रेशन को उसी तरह जोड़ने की अनुमति मिलती है.
  • रूम पेजिंग सहायता: androidx.room:room-paging रिलीज़ किया गया, जिसमें रूम की क्वेरी के लिए androidx.paging.PagingSource पेजिंग 3.0 की नेटिव सुविधा उपलब्ध कराई गई.
  • रिलेशनल क्वेरी के तरीके: रूम में अब मल्टीमैप रिटर्न टाइप @Dao मेथड का इस्तेमाल किया जा सकता है. यह तरीका, जॉइन स्टेटमेंट के लिए काम का है. मल्टीमैप इस्तेमाल किए जा सकते हैं: Map, SparseArray, LongSparseArray, और Guava के ImmutableMap, ImmutableSetMultimap, और ImmutableListMultimap.

वर्शन 2.4.0-rc01

1 दिसंबर, 2021

androidx.room:room-*:2.4.0-rc01 रिलीज़ हो गया है. वर्शन 2.4.0-rc01 में ये कमिट हैं.

नई सुविधाएं

  • Kotlin 1.6 के साथ काम करने के लिए, केएसपी पर रूम की डिपेंडेंसी को 1.6.0-1.0.1 पर अपडेट करें

वर्शन 2.4.0-beta02

17 नवंबर, 2021

androidx.room:room-*:2.4.0-beta02 रिलीज़ हो गया है. वर्शन 2.4.0-beta02 में ये कमिट हैं.

नई सुविधाएं

  • हमने @MapInfo में SparseArray और longSparseArray के लिए सहायता जोड़ी है. (Ic91a2b/138910317)

गड़बड़ियां ठीक की गईं

  • हमने एक नया TypeConverter ऐनालाइज़र जोड़ा है, जो अमान्य हो सकता है जानकारी होती है. यह जानकारी सिर्फ़ उपलब्ध है केएसपी में, यह डिफ़ॉल्ट रूप से सिर्फ़ केएसपी में चालू होता है. अगर इसकी वजह से कोई समस्या होती है, तो पास करके इसे बंद किया जा सकता है room.useNullAwareTypeAnalysis=false से संबंधित व्याख्या में प्रोसेसर चुनें. अगर ऐसा होता है, तो कृपया इस गड़बड़ी की शिकायत करें, क्योंकि इसे हटा दिया जाएगा. इस नए TypeConverter ऐनालाइज़र के साथ, यह सुझाव दिया जाता है कि सिर्फ़ नए ऐनालाइज़र के तौर पर इस्तेमाल करने वाले TypeConverters को नॉन-शून्य रिसीव करने वाले शून्य चेक के साथ उन्हें रैप करने के लिए. ध्यान दें कि इसका उन उपयोगकर्ताओं पर कोई असर नहीं पड़ता है जो KAPT या Java का इस्तेमाल एनोटेशन प्रोसेसर (KSP के उलट), शून्य होने की जानकारी नहीं होती टाइप में. (Ia88f9, b/193437407)
  • गड़बड़ी को ठीक करें, जहां किसी एफ़टीएस इकाई को ICU टोकनाइज़र इस्तेमाल करने का एलान करने पर, कमरा एसक्यूएल की गड़बड़ी के साथ कंपाइल नहीं हो पाता. (I00db9, b/201753224)
  • वर्शन के बीच एम्बेड की गई इकाई में जोड़े गए नए कॉलम से जुड़ी, अपने-आप होने वाले माइग्रेशन की समस्या ठीक की गई. (I5fcb1b/193798291)
  • हमने LEFT जॉइन क्वेरी में, रिलेशनल क्वेरी के तरीके के रिटर्न टाइप से जुड़ी समस्या को हल कर दिया है. इन बदलावों के साथ, ऐसे मामले में जहां 1-मेनिंग की मैपिंग मौजूद हो, किसी कुंजी के लिए लौटाए गए कलेक्शन में, अगर कर्सर में अमान्य वैल्यू ऑब्जेक्ट नहीं मिलता है, तो उसे शामिल नहीं किया जाएगा. अगर कोई मान्य वैल्यू नहीं मिलती है, तो पासकोड को खाली कलेक्शन में मैप कर दिया जाएगा. (Id5552b/201946438)
  • अपने-आप होने वाले माइग्रेशन की उस समस्या को ठीक किया गया जिसकी वजह से SQLite कीवर्ड, कॉलम के नामों से एस्केप नहीं किए जा सके. (Idbed4b/197133152)

वर्शन 2.4.0-beta01

13 अक्टूबर, 2021

androidx.room:room-*:2.4.0-beta01 रिलीज़ हो गया है. वर्शन 2.4.0-beta01 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • अपने-आप होने वाले माइग्रेशन में नए कॉलम न जोड़ने की समस्या ठीक की गई, जबकि इसी नाम से दूसरी टेबल में भी नया कॉलम था. (Ia5db5, b/200818663)
  • अभी रूम पेजिंग से पेजिंगसोर्स लागू किया गया RoomDatabase.Builder से पास किए गए queryExecutor का इस्तेमाल करता है, इसलिए यह पहले के Dispatchers.IO के बजाय, ओवरराइड किया जाएगा. (Iae259)

वर्शन 2.4.0-alpha05

29 सितंबर, 2021

androidx.room:room-*:2.4.0-alpha05 रिलीज़ हो गया है. वर्शन 2.4.0-alpha05 में ये कमियां हैं.

नई सुविधाएं

  • UUID के लिए, पहले से मौजूद टाइप कन्वर्टर जोड़ा गया. (I671e8, b/73132006)

एपीआई में किए गए बदलाव

  • TypeConverters एनोटेशन में एक नई प्रॉपर्टी जोड़ी गई, ताकि डेवलपर पहले से मौजूद Enum और UUID कन्वर्टर बंद कर सकें. डिफ़ॉल्ट रूप से, ये कन्वर्टर चालू होते हैं, लेकिन आपके पास उन्हें किसी खास स्कोप या पूरे डेटाबेस के लिए बंद करने का विकल्प होता है. ज़्यादा जानकारी के लिए, TypeConverters से जुड़ा दस्तावेज़ देखें. (36ae9e, b/195413406)

  • @MapInfo एनोटेशन की मदद से, डीएओ में मल्टीमैप रिटर्न टाइप के लिए, बिना पीओजेओ वाली कुंजियों/वैल्यू के साथ काम करना. (I4d704)

@MapInfo की ज़रूरत तब होगी, जब मैप की कुंजी या वैल्यू वाला कॉलम किसी एक कॉलम से लिया गया हो. उदाहरण देखें:

@MapInfo(valueColumn = "songCount")
@Query("""
       SELECT *, COUNT(mSongId) as songCount
       FROM Artist JOIN Song ON Artist.artistName = Song.artist
       GROUP BY artistName
       """)
fun getArtistAndSongCounts(): Map<Artist, Integer>
  • कमरे के साथ Paging3 का इस्तेमाल करते समय room-paging को एक ज़रूरी आर्टफ़ैक्ट बनाएं. (आईअफ़ी)

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक किया जा सकता है जहां मल्टीमैप क्वेरी के नतीजों को तब सही तरीके से ऑर्डर नहीं किया गया था, जब क्वेरी में मैप की कुंजी में मौजूद किसी कॉलम का ORDER BY क्लॉज़ था. (I6b887)

बाहरी योगदान

  • @Index में इंडेक्स का क्रम बताने के लिए, नया एपीआई जोड़ा गया. धन्यवाद, निकिता झेलनकिन. (I033fc)

वर्शन 2.4.0-alpha04

21 जुलाई, 2021

androidx.room:room-*:2.4.0-alpha04 रिलीज़ हो गया है. वर्शन 2.4.0-alpha04 में ये कमियां हैं.

नई सुविधाएं

  • रूम में अब मल्टीमैप रिटर्न टाइप @Dao तरीकों का इस्तेमाल किया जा सकता है, जो 'शामिल हों' स्टेटमेंट के लिए काम के हैं. Guava के ImmutableMap, ImmutableSetMultimap, और ImmutableListMultimap के साथ-साथ, मल्टीमैप में Map इस्तेमाल किए जा सकते हैं.

    मल्टीमैप क्वेरी के उदाहरण नीचे दिए गए हैं:

    वन-टू-वन रिलेशन मैप

    @Query("SELECT * FROM Song JOIN Artist ON Song.artistId = Artist.artistId")
    fun getSongAndArtist(): Map<Song, Artist>
    

    एक से कई संबंध का मैप (स्टैंडर्ड मल्टीमैप)

    @Query("SELECT * FROM Artist JOIN Album ON Artist.id = Album.artistId")
    fun getArtistAndAlbums(): Map<Artist, List<Album>>
    

    मल्टीमैप के नतीजे को काम करने वाले एसिंक्रोनस रिटर्न टाइप में भी रैप किया जा सकता है. जैसे, LiveData, Rx का Observable या कोरूटीन Flow.

रूम पेजिंग

  • androidx.room:room-paging रिलीज़ किया गया, जिसमें रूम क्वेरी के लिए नेटिव पेजिंग 3.0 की सुविधा उपलब्ध कराई गई है. यह सुविधा androidx.paging.PagingSource के ज़रिए वापस आती है.

    @Dao
    interface UserDao {
      @Query("SELECT * FROM users ORDER BY id ASC")
      fun loadUsers(): PagingSource<Int, User>
    }
    
  • यह आर्टफ़ैक्ट, रूम से जनरेट हुए androidx.paging.PagingSource को लागू करने के तरीके को पेजिंग 3.0 एपीआई पर बनाए गए सेटअप से बदल देता है. नया PagingSource लागू करने के तरीके कुंजियों को अलग तरीके से पार्स करता है, इसलिए रूम के PagingSource को मैन्युअल रूप से दी गई किसी भी कुंजी को बदलाव के लिए ध्यान देना होगा. इसमें पेजर के कंस्ट्रक्टर से पास की गई beforeKey भी शामिल है. Key से पेज लोड होने लगेंगे और Key सबसे पहले लोड किया गया आइटम होगा. यह उन मौजूदा व्यवहार से अलग है जहां LoadParams.Refresh.Key को उपयोगकर्ता की स्क्रोल पोज़िशन के तौर पर माना जाता है और आइटम, कुंजी के पहले और बाद में लोड होते हैं.

  • आर्टफ़ैक्ट ज़रूरी नहीं है. ऑप्ट आउट करने पर, रूम 2.3 में पेश किए गए पेजिंग 3.0 पर भी काम किया जा सकेगा. हालांकि, पेजिंग 3.0 के साथ रूम का इस्तेमाल करने वाले लोगों के लिए, आने वाले समय में रिलीज़ होने वाली रिलीज़ में, इस आर्टफ़ैक्ट का इस्तेमाल करना ज़रूरी नहीं है. ऑप्ट-इन करने के लिए, अपने क्लासपाथ में नया रूम पेजिंग आर्टफ़ैक्ट जोड़ें. अगर Gradle का इस्तेमाल किया जा रहा है, तो अपने build.gradle में यह स्निपेट जोड़ें:

    dependency {
      implementation("androidx.room:room-paging:2.4.0-alpha04")
    }
    

गड़बड़ियां ठीक की गईं

  • अपने-आप होने वाले माइग्रेशन से जुड़ी समस्या को ठीक किया गया है. यह समस्या, विदेशी कुंजी के उल्लंघनों से जुड़ी है. (b/190113935)

वर्शन 2.4.0-alpha03

16 जून, 2021

androidx.room:room-*:2.4.0-alpha03 रिलीज़ हो गया है. वर्शन 2.4.0-alpha03 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • रूम के MigrationTestHelper को अपडेट करें, ताकि एक नया कंस्ट्रक्टर एपीआई देकर, अपने-आप माइग्रेशन हो सके. यह एपीआई, डेटाबेस क्लास को टेस्ट करता है. इससे हेल्पर को runMigrationsAndValidate के दौरान, अपने-आप होने वाले माइग्रेशन को उसी तरह जोड़ने की अनुमति मिलती है.

गड़बड़ियां ठीक की गईं

  • Apple के M1 चिप के साथ काम करने के लिए, Room की SQLite नेटिव लाइब्रेरी से जुड़ी समस्या ठीक की गई. (b/174695268

  • समस्या को ठीक किया गया है, जब @Transaction फ़ंक्शन के रिटर्न टाइप में कोई फ़्लो (I56ddd, b/190075899) होने पर रूम गड़बड़ी नहीं करता था

  • इंडेक्स से जुड़े अपने-आप होने वाले माइग्रेशन से जुड़ी समस्या ठीक करें. b/177673291

डिपेंडेंसी से जुड़े अपडेट

  • रूम केएसपी के लिए सहायता अब, केएसपी 1.5.10-1.0.0-beta01 पर निर्भर करती है. (1ecb11, b/160322705)

वर्शन 2.4.0-alpha02

5 मई, 2021

androidx.room:room-*:2.4.0-alpha02 रिलीज़ हो गया है. वर्शन 2.4.0-alpha02 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • @ProvidedAutoMigrationSpec एक नया एपीआई है. इसका मतलब है कि रनटाइम के दौरान, RoomDatabase.Builder#addAutoMigrationSpec() के ज़रिए AutoMigrationSpec दिया जाएगा. इसकी मदद से, डिपेंडेंसी इंजेक्शन फ़्रेमवर्क को जटिल डिपेंडेंसी की ज़रूरत होने पर इस तरह के निर्देश दिए जा सकते हैं.

गड़बड़ियां ठीक की गईं

  • अपने-आप होने वाले माइग्रेशन से जुड़ी समस्या ठीक करें, जहां @DatabaseView सही तरीके से फिर से नहीं बनाया जा रहा हो.

बाहरी योगदान

  • चैट रूम के JournalMode.TRUNCATE में उस समस्या को ठीक करें जिसमें InvalidationTracker कॉलबैक को कभी-कभी गलत तरीके से, बहुत देर से शुरू किया जा रहा हो या फिर बिलकुल भी न किया गया हो. Uli Bubenheimer | bubenheimer@users.noreply.github.com को धन्यवाद (b/154040286)

वर्शन 2.4.0-alpha01

21 अप्रैल, 2021

androidx.room:room-*:2.4.0-alpha01 रिलीज़ हो गया है. वर्शन 2.4.0-alpha01 में ये कमियां हैं.

नई सुविधाएं

  • अपने-आप माइग्रेशन: रूम अब अपने-आप माइग्रेशन जनरेट करने के लिए एक एपीआई की सुविधा देता है. हालांकि, इसके लिए ज़रूरी है कि स्कीमा एक्सपोर्ट किए जा रहे हों. रूम को यह बताने के लिए कि उसे अपने-आप माइग्रेट होने की सुविधा जनरेट करनी चाहिए, एक नई प्रॉपर्टी @Database#autoMigrations का इस्तेमाल करके, अलग-अलग वर्शन से अपने-आप माइग्रेट होने का एलान किया जा सकता है. जब रूम को टेबल और कॉलम के नाम बदलने या मिटाने के बारे में ज़्यादा जानकारी की ज़रूरत होती है, तो @AutoMigration एनोटेशन, इस तरह के इनपुट वाली स्पेसिफ़िकेशन क्लास का एलान कर सकता है. ज़्यादा जानकारी के लिए, @AutoMigration दस्तावेज़ देखें.

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक करें जिसमें रूम के स्कीमा की पुष्टि करने वाले टूल की मदद से, ज़्यादा ब्रैकेट वाले defaultValue की गलत तरीके से पुष्टि की जा रही थी. b/182284899

वर्शन 2.3.0

वर्शन 2.3.0

21 अप्रैल, 2021

androidx.room:room-*:2.3.0 रिलीज़ हो गया है. वर्शन 2.3.0 में ये कमियां शामिल हैं.

2.2.0 के बाद से हुए अहम बदलाव

  • पहले से मौजूद Enum सहायता: रूम अब डिफ़ॉल्ट रूप से Enum से स्ट्रिंग में और कोई भी विकल्प न दिए जाने पर कन्वर्टर का इस्तेमाल करेगा. अगर किसी ईनम के लिए टाइप कन्वर्टर पहले से मौजूद है, तो रूम उसका इस्तेमाल डिफ़ॉल्ट के बजाय प्राथमिकता देगा.
  • क्वेरी कॉलबैक: रूम, अब सामान्य कॉलबैक एपीआई के लिए RoomDatabase.QueryCallback की सुविधा देता है. हालांकि, ऐसा तब होता है, जब क्वेरी लागू होने वाली हों. इससे, डीबग बिल्ड में लॉग इन करने में मदद मिल सकती है. कॉलबैक को RoomDatabase.Builder#setQueryCallback() के ज़रिए सेट किया जा सकता है.
  • पहले से पैक किया गया सुधार: रूम में अब इनपुट स्ट्रीम से पढ़ने के लिए पहले से पैकेज किए गए डेटाबेस का इस्तेमाल करके, डेटाबेस बनाने के लिए एपीआई उपलब्ध हैं. इसकी मदद से, ऐसे मामलों में मदद मिलती है जब प्री-पैकेज डेटाबेस को gzip किया जाता है.
  • उपलब्ध कराए गए टाइप कन्वर्टर: रूम में अब कन्वर्टर टाइप के इंस्टेंस उपलब्ध कराने के लिए एपीआई उपलब्ध हैं. ऐप्लिकेशन से, इस तरह के कन्वर्ज़न को कंट्रोल करने की सुविधा मिलती है. रूम को दिए जाने वाले टाइप कन्वर्टर को मार्क करने के लिए, नए एनोटेशन @prodTypeConverter का इस्तेमाल करें.
  • RxJava3 सहायता: रूम अब RxJava3 टाइप के साथ काम करता है. RxJava2 की तरह ही, डीएओ के उन तरीकों का एलान किया जा सकता है जिनके रिटर्न टाइप फ़्लोएबल, सिंगल, शायद, और पूरे किए जा सकने वाले हों. इसके अलावा, RxJava3 के साथ काम करने के लिए एक नया आर्टफ़ैक्ट androidx.room:room-rxjava3 उपलब्ध है.
  • पेज 3.0 के लिए सहायता: रूम अब @Query व्याख्या किए गए उन तरीकों के लिए लागू करने की सुविधा को जनरेट करने में मदद करेगा जिनका रिटर्न टाइप androidx.paging.PagingSource है.

वर्शन 2.3.0-rc01

24 मार्च, 2021

androidx.room:room-*:2.3.0-rc01 रिलीज़ हो गया है. वर्शन 2.3.0-rc01 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक करें जिसकी वजह से, चैट रूम के बनाए गए कोरूटीन फ़्लो क्वेरी को निलंबित किए जाने वाले withTransaction ब्लॉक में इस्तेमाल नहीं किया जा सका. (I797bf)

वर्शन 2.3.0-beta03

10 मार्च, 2021

androidx.room:room-*:2.3.0-beta03 रिलीज़ हो गया है. वर्शन 2.3.0-beta03 में ये कमिट हैं.

नई सुविधाएं

  • केएसपी के लिए, इंक्रीमेंटल कंपाइलेशन सपोर्ट जोड़ा गया. (I031c1, b/176453350)

गड़बड़ियां ठीक की गईं

  • मुख्य थ्रेड पर PagingSource बनाने से, ANR वाली गड़बड़ी ट्रिगर हो सकती है. इस गड़बड़ी को ठीक किया गया है. (I42b74, b/181221318)
  • @ExperimentalRoomApi के दिखने की सेटिंग को 'निजी' के बजाय सार्वजनिक पर सेट किया गया. (b/181356119)

बाहरी योगदान

  • जब रूम के साथ @SkipQueryVerification भी एनोटेट किया गया हो, तो वह @Query एनोटेट किए गए डीएओ तरीके में, पीओजेओ के रिटर्न टाइप को स्वीकार करने की अनुमति देता है. रूम, क्वेरी के नतीजे को पीओजेओ रिटर्न टाइप में बदलने की पूरी कोशिश करेगा. यह ठीक उसी तरह करना होगा जैसे @RawQuery की जानकारी देने वाले डीएओ तरीके में किया जाता है. ‘मार्कस रीगल | hey@marcorei.com’. (I45acb)

वर्शन 2.3.0-beta02

18 फ़रवरी, 2021

androidx.room:room-*:2.3.0-beta02 रिलीज़ हो गया है. वर्शन 2.3.0-beta02 में ये कमिट हैं.

नई सुविधाएं

  • रूम में अब Kotlin सिंबल प्रोसेसिंग KSP के लिए एक्सपेरिमेंट के तौर पर सहायता उपलब्ध है.

    KSP, KAPT की जगह है, जो Kotlin कंपाइलर पर मूल रूप से एनोटेशन प्रोसेसर चला सकती है. इससे बिल्ड में लगने वाला समय काफ़ी कम हो जाता है.

    KSP के साथ रूम का इस्तेमाल करने के लिए, KSP Gradle प्लग इन लागू किया जा सकता है और अपनी बिल्ड फ़ाइल में kapt कॉन्फ़िगरेशन को ksp से बदला जा सकता है. उदाहरण के लिए, kapt 'androidx.room:room-compiler:2.3.0-beta02' के बजाय ksp 'androidx.room:room-compiler:2.3.0-beta02' का इस्तेमाल करें. ज़्यादा जानकारी के लिए, KSP से जुड़ा दस्तावेज़ देखें.

    ध्यान दें कि KSP को एक्सपेरिमेंट के तौर पर शुरू किया गया है. इसलिए, आपको प्रोडक्शन कोड के लिए KAPT का इस्तेमाल करने का सुझाव भी दिया जाता है. बिल्ड टाइम को कम करने की सुविधा सिर्फ़ तब लागू होती है, जब केएपीटी का इस्तेमाल करने वाला कोई अन्य प्रोसेसर न हो. जानी-पहचानी समस्याओं के लिए, b/160322705 पर जाएं.

वर्शन 2.3.0-beta01

27 जनवरी, 2021

androidx.room:room-*:2.3.0-beta01 रिलीज़ हो गया है. वर्शन 2.3.0-beta01 में ये कमिट मौजूद हैं.

नई सुविधाएं

  • अपने-आप बंद होने वाले डेटाबेस: रूम में अब ऐसे डेटाबेस बंद किए जा सकते हैं जिन्हें तय समय के बाद ऐक्सेस नहीं किया जाता. इस सुविधा को फ़िलहाल आज़माया जा रहा है. इसे RoomDatabase.Builder#setAutoCloseTimeout() पर कॉल करके चालू किया जा सकता है. यह सुविधा एक से ज़्यादा डेटाबेस वाले ऐप्लिकेशन के लिए बहुत काम की है.

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक कर दिया गया है जहां @Update या @Delete तरीकों से अलग-अलग कॉन्फ़्लिक्ट स्ट्रेटजी वाली 'डीएओ' तरीके से, सिर्फ़ एक रणनीति के साथ कोड जनरेट होगा. इस तरह, पहले से तय की गई रणनीति को अनदेखा किया जा सकता है. (/I0b90d, b/176138543)

वर्शन 2.3.0-alpha04

16 दिसंबर, 2020

androidx.room:room-*:2.3.0-alpha04 रिलीज़ हो गया है. वर्शन 2.3.0-alpha04 में ये कमियां हैं.

नई सुविधाएं

  • रूम में अब सामान्य कॉलबैक एपीआई RoomDatabase.QueryCallback की सुविधा दी गई है. यह सुविधा तब काम करती है, जब क्वेरी लागू होने वाली हों. इससे डीबग बिल्ड में लॉग इन करने में मदद मिल सकती है. कॉलबैक को RoomDatabase.Builder#setQueryCallback() के ज़रिए सेट किया जा सकता है. (Iaa513, b/174478034, b/74877608)
  • रूम अब डिफ़ॉल्ट रूप से Enum से स्ट्रिंग में इस्तेमाल होगा. अगर कोई भी रूम नहीं दिया जाता है, तो रूम में Enum का इस्तेमाल करके कन्वर्टर किया जाएगा. अगर किसी ईनम के लिए टाइप कन्वर्टर पहले से मौजूद है, तो रूम उसका इस्तेमाल डिफ़ॉल्ट के बजाय प्राथमिकता देगा. (b/73132006)

आम समस्या

  • अगर Enum के लिए, पढ़ने के लिए एकतरफ़ा टाइप का कन्वर्टर पहले से मौजूद है, तो हो सकता है कि रूम गलती से बिल्ट-इन स्ट्रिंग से Enum कन्वर्टर का इस्तेमाल कर ले, जो शायद आपको पसंद न हो. यह एक आम समस्या है और इसे दो-तरफ़ा कन्वर्टर बनाकर ठीक किया जा सकता है. देखें: b/175707691

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक किया गया है जिसकी वजह से रूम, JDK के नए वर्शन में इंक्रीमेंटल एनोटेशन को गलत तरीके से बंद कर देता था. (b/171387388)
  • एक से ज़्यादा क्लास लोडर का इस्तेमाल करने पर, जनरेट की गई क्लास को ढूंढने में रूम से जुड़ी समस्या ठीक की गई. ‘सेरेंडिपिटी’ को ठीक करने के लिए धन्यवाद | 892449346@qq.com’! (b/170141113)
  • उस समस्या को ठीक किया गया है जहां Kotlin @Dao में बेस क्लास के होने पर रूम गलत कोड जनरेट करता था, जिसके जेनरिक, जेवीएम में प्रिमिटिव होते हैं. (b/160258066)

बाहरी योगदान

  • अगर WAL मोड चालू है और एपीआई के वर्शन 16 या इससे ज़्यादा है, तो रूम में अब डिफ़ॉल्ट रूप से beginTransactionNonExclusive का इस्तेमाल किया जाएगा. ‘अहमद आई. खलील | ahmedibraim स्थानli@gmail.com’! (b/126258791)

वर्शन 2.3.0-alpha03

14 अक्टूबर, 2020

androidx.room:room-*:2.3.0-alpha03 रिलीज़ हो गया है. वर्शन 2.3.0-alpha03 में ये कमियां हैं.

नई सुविधाएं

  • रूम में अब कन्वर्ज़न टाइप के ऐसे इंस्टेंस उपलब्ध कराने के लिए एपीआई उपलब्ध हैं जिनसे ऐप्लिकेशन, शुरू करने के लिए कंट्रोल कर सकता है. रूम को दिए जाने वाले टाइप कन्वर्टर को मार्क करने के लिए, नए एनोटेशन @ProvidedTypeConverter का इस्तेमाल करें. ‘mzgreen yairobbe@gmail.com’ को धन्यवाद. (Ie4fa5, b/121067210)

  • रूम में अब एपीआई की मदद से, इनपुट स्ट्रीम से पहले से पैकेज किए गए डेटाबेस को पढ़ा जा सकता है और उसका इस्तेमाल करके डेटाबेस बनाया जा सकता है. इसकी मदद से, ऐसे मामलों में मदद मिलती है जब प्री-पैकेज डेटाबेस को gzip किया जाता है. ‘Ahmed El-Helw ahmedre@gmail.com’ (3e6792, b/146911060) को धन्यवाद

एपीआई में किए गए बदलाव

  • @ForeignKey एनोटेशन में वह टारगेट जोड़ा गया जो पहले मौजूद नहीं था. इस वजह से, @Entity एनोटेशन के बाहर इसका इस्तेमाल नहीं किया जा सका. (Ice1e)

  • RoomDatabase.java में मौजूद mCallbacks फ़ील्ड को अब छिपा दिया गया है. (d576cb, b/76109329)

गड़बड़ियां ठीक की गईं

  • TypeConverters दस्तावेज़ में अपडेट करें, ताकि यह साफ़ तौर पर बताया जा सके कि TypeConverters का इस्तेमाल सिर्फ़ कॉलम / फ़ील्ड को बदलने के लिए किया जा सकता है, पंक्तियों को नहीं. (I07c56, b/77307836)

  • Kotlin "प्रिमिटिव" वाले जेनरिक सुपर टाइप के साथ, डीएओ पर कंपाइलर की गड़बड़ी को ठीक करने के लिए, DaoProcessor को अपडेट करें. (Ice6bb, b/160258066)

  • थ्रेडिंग को बेहतर तरीके से समझाने के लिए, ऑब्ज़र्वर के तरीकों को जोड़ने/हटाएं से जुड़े दस्तावेज़ को अपडेट करें (Ifd1d9, b/153948821)

  • रूम में पंक्ति आईडी कॉलम का एलान करने वाली एफ़टीएस टेबल की गलत पुष्टि करने से जुड़ी समस्या को ठीक किया गया. (d62ebc, b/145858914)

बाहरी योगदान

  • टर्किश (5746e3), b/68159494 से जुड़े अपर/लोअरकेस स्थान-भाषा की समस्याएं ठीक करना

  • Android Lollipop (d1cfc7, b/162431855) पर समस्याओं से बचने के लिए, RoomDatabase के अंदर के ConcurrentHashMap को Collections.synchronizedMap() से बदलें

  • पहले से पैकेज किए जाने पर, onOpenPrepackagedDatabase कॉलबैक जोड़ें DB कॉपी किया गया. (I1ba74, b/148934423)

वर्शन 2.3.0-alpha02

22 जुलाई, 2020

androidx.room:room-*:2.3.0-alpha02 रिलीज़ हो गया है. वर्शन 2.3.0-alpha02 में ये कमियां हैं.

नई सुविधाएं

  • RxJava3 सहायता: रूम अब RxJava3 टाइप के साथ काम करता है. RxJava2 की तरह ही, डीएओ के उन तरीकों का एलान किया जा सकता है जिनके रिटर्न टाइप फ़्लोएबल, सिंगल, शायद, और पूरे किए जा सकने वाले हों. इसके अलावा, RxJava3 के साथ काम करने के लिए एक नया आर्टफ़ैक्ट androidx.room:room-rxjava3 उपलब्ध है. (b/152427884)

एपीआई में किए गए बदलाव

  • अब Kotlin ऑब्जेक्ट क्लास में @TypeConverter तय करने की सुविधा काम करती है. (b/151110764)
  • रूम के इंक्रीमेंटल एनोटेशन को प्रोसेस करने का विकल्प अब डिफ़ॉल्ट रूप से चालू है. (b/112110217)

वर्शन 2.3.0-alpha01

10 जून, 2020

androidx.room:room-*:2.3.0-alpha01 रिलीज़ हो गया है. वर्शन 2.3.0-alpha01 में ये कमियां हैं.

नई सुविधाएं

  • पेज 3.0 के लिए सहायता: रूम अब @Query व्याख्या किए गए उन तरीकों के लिए लागू करने की सुविधा को जनरेट करने में मदद करेगा जिनका रिटर्न टाइप androidx.paging.PagingSource है.

    @Dao
    interface UserDao {
      @Query("SELECT * FROM users ORDER BY id ASC")
      fun pagingSource(): PagingSource<Int, User>
    }
    

एपीआई में किए गए बदलाव

  • @RewriteQueriesToDropUnusedColumns एक नई सुविधाजनक एनोटेशन है. इसकी मदद से रूम, किसी क्वेरी में ‘*’ प्रोजेक्शन को इस तरह फिर से लिखता है कि नतीजे में इस्तेमाल नहीं किए गए कॉलम हटा दिए जाएं.
  • प्रोसेसर विकल्प room.expandProjection अब काम नहीं करता. स्टार के अनुमान वाली सुविधा की मदद से रूम ऑप्टिमाइज़ करने वाली क्वेरी की जगह @RewriteQueriesToDropUnusedColumns का इस्तेमाल करें. ध्यान दें कि @RewriteQueriesToDropUnusedColumns, @Embedded फ़ील्ड वाले रिटर्न टाइप के मामले में पेश किए गए, कॉलम कॉन्फ़्लिक्ट सलूशन room.expandProjection को नहीं बदलता.

गड़बड़ियां ठीक की गईं

  • वह गड़बड़ी ठीक की गई है जहां Room, इंक्रीमेंटल एनोटेशन प्रोसेसर को चालू करने के लिए इस्तेमाल किए गए JDK वर्शन का सही से पता नहीं लगा पाता. ब्लेज़ सोलर (me@blaz.solar) (b/155215201) का धन्यवाद
  • रूम अब अपनी ANTLR डिपेंडेंसी को एनोटेशन प्रोसेसर के साथ एम्बेड करता है, ताकि ANTLR का इस्तेमाल करने वाले दूसरे प्रोसेसर के साथ वर्शन के टकराव से बचा जा सके. (b/150106190)

वर्शन 2.2.6

वर्शन 2.2.6

16 दिसंबर, 2020

androidx.room:room-*:2.2.6 रिलीज़ हो गया है. वर्शन 2.2.6 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक किया गया है जिसकी वजह से रूम, JDK के नए वर्शन में इंक्रीमेंटल एनोटेशन को गलत तरीके से बंद कर देता था. (b/171387388)

वर्शन 2.2.5

वर्शन 2.2.5

18 मार्च, 2020

androidx.room:room-*:2.2.5 रिलीज़ हो गया है. वर्शन 2.2.5 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • MultiInstanceInvalidationService DirectBootAware बनाएं. ‘Mygod contact-git@mygod.be’ (b/148240967) को धन्यवाद
  • एक से ज़्यादा इंस्टेंस अमान्य होने की सुविधा चालू होने पर, ऐप्लिकेशन क्रैश होने की गड़बड़ी को ठीक किया गया. साथ ही, डेटाबेस में एफ़टीएस इकाई मौजूद थी. (b/148969394)
  • रूम एनोटेशन प्रोसेसर में, SQLite की नेटिव लाइब्रेरी लोड करते समय होने वाली समस्या को ठीक किया गया है. इसकी वजह से कंपाइलर, पैरलल कंपाइलेशन की वजह से क्रैश हो सकता है. (b/146217083)

वर्शन 2.2.4

वर्शन 2.2.4

19 फ़रवरी, 2020

androidx.room:room-common:2.2.4, androidx.room:room-compiler:2.2.4, androidx.room:room-guava:2.2.4, androidx.room:room-ktx:2.2.4, androidx.room:room-migration:2.2.4, androidx.room:room-runtime:2.2.4, androidx.room:room-rxjava2:2.2.4, और androidx.room:room-testing:2.2.4 रिलीज़ हुए हैं. वर्शन 2.2.4 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • निलंबित किए जाने वाले लेन-देन की समस्या को ठीक किया गया. अगर लेन-देन शुरू होने से पहले ही कोरूटीन रद्द कर दिया जाता, तो इसकी वजह से समस्या रुक जाती थी. (b/148181325)
  • JDK 9 के साथ बनाते समय @बाईं ओर गलत तरीके से इस्तेमाल किए जाने से जुड़ी समस्या ठीक की गई. (b/146538330)
  • उस समस्या को ठीक किया गया है जहां Kotlin में डीएओ इंटरफ़ेस के कंक्रीट फ़ंक्शन होने पर, रूम गलत कोड जनरेट करता था. (b/146825845)

वर्शन 2.2.3

वर्शन 2.2.3

18 दिसंबर, 2019

androidx.room:room-*:2.2.3 रिलीज़ हो गया है. वर्शन 2.2.3 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • एक गड़बड़ी को ठीक किया गया है, जहां रूम उस डेटाबेस की पुष्टि नहीं कर पाता था जिसमें माइग्रेशन की प्रक्रिया पूरी नहीं हुई थी. साथ ही, स्कीमा में इंडेक्स वाला लेगसी हैश भी शामिल था. (b/139306173)

वर्शन 2.2.2

वर्शन 2.2.2

20 नवंबर, 2019

androidx.room:room-*:2.2.2 रिलीज़ हो गया है. वर्शन 2.2.2 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • वह गड़बड़ी ठीक की गई है जिसमें 999 से ज़्यादा पंक्तियों वाला वन-टू-वन रिलेशनशिप इकट्ठा करने पर, रूम से मिलते-जुलते आइटम की कोई जानकारी नहीं मिलती. (b/143105450)

वर्शन 2.2.1

वर्शन 2.2.1

23 अक्टूबर, 2019

androidx.room:room-*:2.2.1 रिलीज़ हो गया है. वर्शन 2.2.1 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • उस गड़बड़ी को ठीक किया गया है जिसमें रूम, कंपाइलर विकल्पexpandProjection को चालू करने पर, CURSOR_MISMATCH के बारे में गलती से चेतावनी देता है. (b/140759491)
  • कंपाइलेशन के दौरान क्वेरी की पुष्टि करने के लिए इस्तेमाल की जाने वाली नेटिव लाइब्रेरी को मैनेज करने के लिए, फिर से कोशिश करने का तरीका जोड़ा गया.

वर्शन 2.2.0

वर्शन 2.2.0

9 अक्टूबर, 2019

androidx.room:room-*:2.2.0 रिलीज़ हो गया है. वर्शन 2.2.0 में ये कमियां शामिल हैं.

2.1.0 वर्शन के बाद से हुए अहम बदलाव

  • पहले से पैकेज किया गया डेटाबेस: RoomDatabase.Builder में अब दो नए एपीआई हैं पहले से भरे हुए डेटाबेस में, RoomDatabase बनाने के लिए उपलब्ध होता है फ़ाइल से लिए जाते हैं. createFromAsset() तब के लिए होता है, जब पहले से भरी हुई डेटाबेस फ़ाइल APK का एसेट फ़ोल्डर है, जबकि createFromFile() फ़ाइल को आपकी पसंद के हिसाब से बनाया जा सकता है. इन एपीआई के इस्तेमाल से, नुकसान पहुंचाने वाला माइग्रेशन ऐसा हो सकता है कि फ़ॉलबैक माइग्रेशन के दौरान, रूम पहले से भरे गए डेटाबेस को फिर से कॉपी करने के लिए, अगर उपलब्ध हो, तो यह बस सभी टेबल को ड्रॉप करके फिर से बनाया जा रहा है. b/62185732
  • स्कीमा की डिफ़ॉल्ट वैल्यू: @ColumnInfo के पास अब एक नई प्रॉपर्टी defaultValue है इसका इस्तेमाल, कॉलम की डिफ़ॉल्ट वैल्यू तय करने के लिए किया जा सकता है. डिफ़ॉल्ट मान ये हैं का हिस्सा है और माइग्रेशन के दौरान इसकी पुष्टि की जाएगी, अगर बताया गया है. b/64088772
  • कई-से-कई संबंध: @Relation में अब एक नई प्रॉपर्टी associateBy है, जो एक नई व्याख्या @Junction लेता है, जिसका इस्तेमाल मिलान टेबल (जिसे जॉइन टेबल भी कहा जाता है) के ज़रिए भेजना होता है. b/69201917
  • वन-टू-वन रिलेशंस: पीओजेओ फ़ील्ड में मौजूद पाबंदी List या Set टाइप के लिए @Relation को हटा दिया गया है इससे सिंगल वैल्यू वाले संबंधों को दिखाया जा सकता है. b/62905145
  • टारगेट इकाई: अब डीएओ @Insert, @Update, और @Delete के बारे में जानकारी दी गई है में एक नई प्रॉपर्टी targetEntity है, जो आपको टारगेट टेबल बताने की अनुमति देती है डीएओ तरीके का इस्तेमाल, सिर्फ़ अपने काम के लिए किया जा सकता है. इससे डीएओ के पैरामीटर को मंज़ूरी मिलती है मैन्युअल तरीके से POJO चुने जा सकते हैं, जिन्हें आंशिक इकाइयां माना जाएगा. व्यावहारिक तौर पर, यह कुछ हिस्से को जोड़ने, मिटाने, और अपडेट करने की अनुमति देता है. b/127549506
  • कोरूटीन फ़्लो: @Query डीएओ के तरीके अब Flow<T> के रिटर्न टाइप के हो सकते हैं. अगर ऑब्ज़र्व करने वाली टेबल क्वेरी अमान्य हो. Channel<T> रिटर्न के साथ डीएओ फ़ंक्शन का एलान करना प्रकार एक गड़बड़ी है, इसके बजाय रूम आपको Flow का उपयोग करने और फिर आस-पास के फ़ंक्शन का इस्तेमाल करके, Flow को Channel में बदलें. b/130428884
  • ग्रेडल इंक्रीमेंटल एनोटेशन प्रोसेसर: रूम का नाम अब ग्रेडल के तौर पर अलग-अलग हो गया है एनोटेशन प्रोसेसर और इंक्रीमेंटेबिलिटी को प्रोसेसर के ज़रिए चालू किया जा सकता है विकल्प room.incremental. यहां जाएं: रूम कंपाइलर के विकल्प हमारा वीडियो देखें. अगर आपको कोई समस्या आती है, तो कृपया गड़बड़ी के बारे में जानने के लिए यहां देखें. हम आने वाले समय के स्टेबल वर्शन में, बढ़ोतरी को डिफ़ॉल्ट रूप से चालू करने की योजना बना रहे हैं. b/112110217
  • अनुमान बढ़ाना: प्रयोग के तौर पर इस्तेमाल किया जा रहा एक नया कंपाइलर विकल्प room.expandProjection जोड़ा गया, जिसकी वजह से रूम में क्वेरी को फिर से लिखा जा सकता है ऐसा तारा प्रोजेक्शन जिसमें केवल लौटने वाले POJO में कॉलम शामिल होते हैं. इसके लिए जैसे, @Query("SELECT * FROM Song") के साथ डीएओ तरीके से सिर्फ़ दो फ़ील्ड वाले POJO का नाम SongIdAndTitle है. इसके बाद रूम, SELECT id, title FROM Song से इस तरह क्वेरी करें कि कॉलम का कम से कम सेट ताकि रिटर्न टाइप फ़ेच किए जा सकें. यह आवश्यक रूप से हटा देता है क्वेरी से ज़्यादा नतीजे मिलने पर दिखने वाली CURSOR_MISMATCH चेतावनी वे कॉलम जो लौटने वाले POJO टाइप में किसी भी फ़ील्ड से मेल नहीं खाते.

वर्शन 2.2.0-rc01

5 सितंबर, 2019

androidx.room:room:2.2.0-rc01 रिलीज़ हो गया है. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

2.2.0-beta01 रूम से कोई सार्वजनिक बदलाव नहीं किया गया है.

वर्शन 2.2.0-beta01

22 अगस्त, 2019

androidx.room:room-*:2.2.0-beta01 रिलीज़ हो गया है. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

गड़बड़ियां ठीक की गईं

  • उस गड़बड़ी को ठीक किया गया है जिसमें कोरूटीन फ़्लो क्वेरी, एक तय समय के बाद नई वैल्यू को फिर से भेजना बंद कर देती है. (b/139175786)
  • उस गड़बड़ी को ठीक किया गया है जहां रूम, एक ऐसे डेटाबेस को खोलते समय लेगसी स्कीमा हैश कोड स्वीकार नहीं करता जिसमें रूम 1.0 के बाद से माइग्रेशन नहीं हुआ था. इस वजह से, अमान्य स्कीमा की वजह से रनटाइम क्रैश होता था. (b/139306173)

वर्शन 2.2.0-alpha02

7 अगस्त, 2019

androidx.room:room-*:2.2.0-alpha02 रिलीज़ हो गया है. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

नई सुविधाएं

  • कोरूटीन फ़्लो: @Query डीएओ के तरीके अब Flow<T> के रिटर्न टाइप के हो सकते हैं. अगर ऑब्ज़र्व करने वाली टेबल क्वेरी अमान्य हो. Channel<T> रिटर्न के साथ डीएओ फ़ंक्शन का एलान करना प्रकार एक गड़बड़ी है, इसके बजाय रूम आपको Flow का उपयोग करने और फिर आस-पास के फ़ंक्शन का इस्तेमाल करके, Flow को Channel में बदलें. b/130428884
  • अनुमान बढ़ाना: प्रयोग के तौर पर इस्तेमाल किया जा रहा एक नया कंपाइलर विकल्प room.expandProjection जोड़ा गया, जिसकी वजह से रूम में क्वेरी को फिर से लिखा जा सकता है ऐसा तारा प्रोजेक्शन जिसमें केवल लौटने वाले POJO में कॉलम शामिल होते हैं. इसके लिए जैसे, @Query("SELECT * FROM Song") के साथ डीएओ तरीके से सिर्फ़ दो फ़ील्ड वाले POJO का नाम SongIdAndTitle है. इसके बाद रूम, SELECT id, title FROM Song से इस तरह क्वेरी करें कि कॉलम का कम से कम सेट ताकि रिटर्न टाइप फ़ेच किए जा सकें. यह आवश्यक रूप से हटा देता है क्वेरी से ज़्यादा नतीजे मिलने पर दिखने वाली CURSOR_MISMATCH चेतावनी वे कॉलम जो लौटने वाले POJO टाइप में किसी भी फ़ील्ड से मेल नहीं खाते.
  • onDestructiveMigrate, RoomDatabase.Callback में जोड़ा गया एक नया कॉलबैक एपीआई है के लिए. b/79962330

गड़बड़ियां ठीक की गईं

  • वह गड़बड़ी ठीक की गई है जिसमें रूम, फ़ील्ड के तौर पर किसी तरीके का इस्तेमाल करके गलत कोड जनरेट करेगा सेटर जब फ़ील्ड सुरक्षित हो. b/136194628
  • उस गड़बड़ी को ठीक किया गया जिसकी वजह से अमान्यationTracker ने अगले सेकंड में एनपीई को फेंक दिया था एक से ज़्यादा इंस्टेंस अमान्य होने की सुविधा चालू होने और अमान्य होने पर सेवा खत्म हो गई. b/137454915
  • गड़बड़ी को ठीक किया गया, जहां रूम इनहेरिट किया गया निलंबन फ़ंक्शन, जो @RawQuery के साथ एनोटेट किया गया है. b/137878827
  • इससे जुड़ी कुंजी के टाइप की होने पर, @Relation के लिए जनरेट किया गया कोड अपडेट किया गया तुलना करने लायक ByteBuffer का इस्तेमाल करने के लिए BLOB. b/137881998
  • उस गड़बड़ी को ठीक किया गया जहां रूम, @Insert, @Update, और @Delete के आंशिक इकाई पैरामीटर. b/138664463
  • गड़बड़ी को ठीक किया गया जहां रूम, गैटर के न मिलने की शिकायत करता था और सेटर किसी डीएओ में इकाई क्लास का इस्तेमाल होने पर, @Entity के ज़रिए कॉलम को अनदेखा किया गया तरीकों का इस्तेमाल करना होगा. b/138238182
  • गड़बड़ी को ठीक किया गया, जहां रूम, नाम वाले बाइंडिंग आर्ग को सही तरीके से नहीं बदल पाता था पोज़िशनल आर्ग्युमेंट के साथ क्वेरी को एक्ज़ीक्यूट करने पर रनटाइम अपवाद पैदा होता है दोबारा इस्तेमाल किए गए पैरामीटर हैं. b/137254857

वर्शन 2.2.0-alpha01

10 जुलाई, 2019

नई सुविधाएं

  • पहले से पैकेज किया गया डेटाबेस: RoomDatabase.Builder में अब दो नए एपीआई हैं पहले से भरे हुए डेटाबेस में, RoomDatabase बनाने के लिए उपलब्ध होता है फ़ाइल से लिए जाते हैं. createFromAsset() तब के लिए होता है, जब पहले से भरी हुई डेटाबेस फ़ाइल APK का एसेट फ़ोल्डर है, जबकि createFromFile() फ़ाइल को आपकी पसंद के हिसाब से बनाया जा सकता है. इन एपीआई के इस्तेमाल से, नुकसान पहुंचाने वाला माइग्रेशन ऐसा हो सकता है कि फ़ॉलबैक माइग्रेशन के दौरान, रूम पहले से भरे गए डेटाबेस को फिर से कॉपी करने के लिए, अगर उपलब्ध हो, तो यह बस सभी टेबल को ड्रॉप करके फिर से बनाया जा रहा है. b/62185732
  • स्कीमा की डिफ़ॉल्ट वैल्यू: @ColumnInfo के पास अब एक नई प्रॉपर्टी defaultValue है इसका इस्तेमाल, कॉलम की डिफ़ॉल्ट वैल्यू तय करने के लिए किया जा सकता है. डिफ़ॉल्ट मान ये हैं का हिस्सा है और माइग्रेशन के दौरान इसकी पुष्टि की जाएगी, अगर बताया गया है. b/64088772

    ध्यान दें: अगर आपके डेटाबेस स्कीमा में पहले से ही डिफ़ॉल्ट स्कीमा है वैल्यू, जैसे कि ALTER TABLE x ADD COLUMN y INTEGER NOTNULL DEFAULT z के ज़रिए जोड़े गए वैल्यू, और आप @ColumnInfo के ज़रिए डिफ़ॉल्ट वैल्यू नहीं है, तो हो सकता है कि आपको डिफ़ॉल्ट वैल्यू शामिल नहीं हैं. यहां जाएं: रूम माइग्रेशन हमारा वीडियो देखें.

  • कई-से-कई संबंध: @Relation में अब एक नई प्रॉपर्टी associateBy है, जो एक नई व्याख्या @Junction लेता है, जिसका इस्तेमाल मिलान टेबल (जिसे जॉइन टेबल भी कहा जाता है) के ज़रिए भेजना होता है. b/69201917
  • वन-टू-वन रिलेशंस: पीओजेओ फ़ील्ड में मौजूद पाबंदी List या Set टाइप के लिए @Relation को हटा दिया गया है इससे सिंगल वैल्यू वाले संबंधों को दिखाया जा सकता है. b/62905145
  • टारगेट इकाई: अब डीएओ @Insert, @Update, और @Delete के बारे में जानकारी दी गई है में एक नई प्रॉपर्टी targetEntity है, जो आपको टारगेट टेबल बताने की अनुमति देती है डीएओ तरीके का इस्तेमाल, सिर्फ़ अपने काम के लिए किया जा सकता है. इससे डीएओ के पैरामीटर को मंज़ूरी मिलती है मैन्युअल तरीके से POJO चुने जा सकते हैं, जिन्हें आंशिक इकाइयां माना जाएगा. व्यावहारिक तौर पर, यह कुछ हिस्से को जोड़ने, मिटाने, और अपडेट करने की अनुमति देता है. b/127549506
  • ग्रेडल इंक्रीमेंटल एनोटेशन प्रोसेसर: रूम का नाम अब ग्रेडल के तौर पर अलग-अलग हो गया है एनोटेशन प्रोसेसर और इंक्रीमेंटेबिलिटी को प्रोसेसर के ज़रिए चालू किया जा सकता है विकल्प room.incremental. यहां जाएं: रूम कंपाइलर के विकल्प हमारा वीडियो देखें. अगर आपको कोई समस्या आती है, तो कृपया गड़बड़ी के बारे में जानने के लिए यहां देखें. हम आने वाले समय के स्टेबल वर्शन में, बढ़ोतरी को डिफ़ॉल्ट रूप से चालू करने की योजना बना रहे हैं. b/112110217

गड़बड़ियां ठीक की गईं

  • कमरा अब EmptySetResultException को ग्लोबल गड़बड़ी हैंडलर जब किसी क्वेरी की Rx स्ट्रीम पहले नष्ट की जाती है क्वेरी पूरी हो गई हो. b/130257475
  • वह गड़बड़ी ठीक की गई है जिसमें निलंबित होने पर, कमरा गड़बड़ी का गलत मैसेज दिखाएगा @RawQuery के साथ एनोटेट किए गए डीएओ फ़ंक्शन में रिटर्न टाइप नहीं है. b/134303897
  • रूम अब रॉ टाइप वाले डीएओ अडैप्टर जनरेट नहीं करेगा. बी/135747255

वर्शन 2.1.0

वर्शन 2.1.0

13 जून, 2019

रूम 2.1.0 को रिलीज़ कर दिया गया है. इसमें 2.1.0-rc01 ने कोई बदलाव नहीं किया है. वर्शन में शामिल की गई कमियां यहां देखी जा सकती हैं.

2.0.0 के बाद के अहम बदलाव

  • एफ़टीएस: रूम अब मैपिंग वाली इकाइयों के साथ काम करता है FTS3 या FTS4 टेबल. क्लास के साथ एनोटेट किया गया एलान करने के लिए, @Entity के साथ अब @Fts3 या @Fts4 के साथ अतिरिक्त जानकारी जोड़ी जा सकती है एक क्लास, जिसमें मैप के सभी टेक्स्ट वाली खोज टेबल मौजूद है. आगे के लिए एफ़टीएस के विकल्प एनोटेशन के तरीकों से कस्टमाइज़ किया जा सकता है.
  • व्यू: रूम की मदद से, क्लास को सेव की गई क्वेरी के तौर पर बताया जा सकता है. इसे, पहले से सेव की गई क्वेरी के तौर पर भी जाना जाता है को व्यू के तौर पर जोड़ा जा सकता है. @DatabaseView एनोटेशन.
  • कोरोआउट: डीएओ तरीकों को अब सस्पेंड फ़ंक्शन के तौर पर इस्तेमाल किया जा सकता है. room-ktx को शामिल करें पर निर्भर है, ताकि इस सुविधा का फ़ायदा मिल सके. ktx आर्टफ़ैक्ट इसके लिए एक्सटेंशन फ़ंक्शन RoomDatabase.withTransaction भी देता है कोरूटीन में डेटाबेस के लेन-देन होते हैं.
  • ऑटो वैल्यू: रूम का इस्तेमाल करके, अब एलान किया जा सकता है AutoValue एनोटेट की गई क्लास, इकाइयों और POJO के तौर पर. रूम के एनोटेशन @PrimaryKey, @ColumnInfo, @Embedded, और @Relation के बारे में अब ऑटो में जानकारी दी जा सकती है वैल्यू की व्याख्या करने वाली क्लास के ऐब्स्ट्रैक्ट मेथड के बारे में बताती हैं. ध्यान दें कि इन एनोटेशन का रूम को @CopyAnnotations के साथ रखा जाना चाहिए, ताकि उन्हें सही तरीके से समझा जा सके.
  • अतिरिक्त एसिंक्रोनस सहायता: @Insert, @Delete के साथ एनोटेट किए गए डीएओ तरीके या @Update, और @Query के साथ INSERT, DELETE या UPDATE स्टेटमेंट, अब Rx रिटर्न टाइप के साथ काम करता है Completable, Single, Maybe, और Guava के रिटर्न टाइप ListenableFuture में मौजूद नहीं थे. साथ ही, उन्हें फ़ंक्शन.
  • enableMultiInstanceInvalidation, RoomDatabase.Builder में एक नया एपीआई है, ताकि एक ही वैल्यू का इस्तेमाल करके, RoomDatabase के एक से ज़्यादा इंस्टेंस के लिए अमान्य होने को चालू करें डेटाबेस फ़ाइल में सेव किया जाएगा.
  • fallbackToDestructiveMigrationOnDowngrade इसमें एक नया एपीआई है डाउनग्रेड होने पर, डेटाबेस अपने-आप फिर से बनाने के लिए RoomDatabase.Builder होता है.
  • ignoredColumns, @Entity एनोटेशन में एक नया एपीआई है. इसका इस्तेमाल इन कामों के लिए किया जा सकता है अनदेखा किए गए फ़ील्ड को नाम से सूचीबद्ध करें.
  • रूम अब डेटा क्लास में Kotlin के मुख्य कंस्ट्रक्टर का सही तरीके से इस्तेमाल करेगा इसके लिए, प्रॉपर्टी के बारे में vars के तौर पर एलान करने की ज़रूरत नहीं है.

वर्शन 2.1.0-rc01

29 मई, 2019

गड़बड़ियां ठीक की गईं

  • रूम शुरू करने में होने वाली गड़बड़ी को ठीक किया गया है, जो पहले से ही किसी सेटअप की वजह से हो सकती थी temp_store कॉन्फ़िगरेशन. b/132602198
  • SQLite 3.27.0 और इसके बाद के वर्शन वाले उपयोगकर्ताओं के लिए, डबल कोट के इस्तेमाल की चेतावनी ठीक की गई. बी/131712640
  • गड़बड़ी को ठीक किया गया है जहां एक से ज़्यादा अमान्य तरीकों से अमान्य होने की वजह से, अमान्य होने की जांच साथ-साथ होंगी. b/133457594

वर्शन 2.1.0-beta01

7 मई, 2019

androidx.room 2.1.0-beta01 को 2.1.0-alpha07 के किसी बदलाव के बिना रिलीज़ किया गया. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

वर्शन 2.1.0-alpha07

25 अप्रैल, 2019

एपीआई / व्यवहार में बदलाव

  • एक्सटेंशन फ़ंक्शन RoomDatabase.withTransaction को बदलकर यह कर दिया गया है अब पाने वाले के रूप में CoroutineScope वाला फ़ंक्शन ब्लॉक नहीं लेता. यह अतिरिक्त coroutineScope { } रैपर को स्किप करने से रोकता है ट्रांज़ैक्शन ब्लॉक में चीज़ों को एक साथ चलाने के लिए ज़रूरी है.

गड़बड़ियां ठीक की गईं

  • उस गड़बड़ी को ठीक किया गया जहां रूम, Kotlin डीएओ के लिए TypeConverter को मैच नहीं कर पाता था फ़ंक्शन में शामिल है. b/122066791

वर्शन 2.1.0-alpha06

22 मार्च, 2019

एपीआई / व्यवहार में बदलाव

  • एक साथ काम नहीं करने वाली ट्रांज़ैक्शन क्वेरी को अब क्रम से लगाया गया है, इसलिए रूम का इस्तेमाल नहीं किया जा सकेगा डेटाबेस ट्रांज़ैक्शन चलाने के लिए एक से ज़्यादा थ्रेड. अनुमति देने के लिए RoomDatabase.Builder.setTransactionExecutor(Executor) को जोड़ा गया लेन-देन के लिए इस्तेमाल करने के लिए, मैनेजर को कॉन्फ़िगर करना.
  • RoomDatabase.runInTransaction(Callable) अब चेक किए गए को रैप नहीं करेगा रनटाइम में अपवाद हो सकते हैं. b/128623748

गड़बड़ियां ठीक की गईं

  • उस गड़बड़ी को ठीक किया गया है जिसकी वजह से अमान्य ट्रैफ़िक को ट्रैक करने वाला टूल, कॉन्टेंट को मॉनिटर करना बंद कर देता है टेबल, अगर कॉन्टेंट टेबल और बाहरी कॉन्टेंट एफ़टीएस, दोनों के लिए ऑब्ज़र्वर हों तालिका जोड़ी गई. b/128508917
  • SQLite 3.24.0 से मैच करने के लिए, रूम के SQLite व्याकरण को अपडेट किया गया. बी/110883668

वर्शन 2.1.0-alpha05

13 मार्च, 2019

नई सुविधाएं

  • RoomDatabase.withTransaction एक्सटेंशन फ़ंक्शन की मदद से, कोरूटीन में डेटाबेस के लेन-देन सुरक्षित तरीके से किए जा सकते हैं. room-ktx आर्टफ़ैक्ट में, रूम एक्सटेंशन फ़ंक्शन और कोरूटीन सपोर्ट उपलब्ध हैं.
  • @Transaction के साथ एनोटेट किए गए नॉन-ऐब्स्ट्रैक्ट डीएओ तरीके, अब सस्पेंड फ़ंक्शन हो सकते हैं. b/120241587

एपीआई / व्यवहार में बदलाव

  • अन्य androidx आर्टफ़ैक्ट के नाम जैसा ही नाम रखने के बाद, आर्टफ़ैक्ट room-coroutines का नाम बदलकर room-ktx कर दिया गया है.
  • RoomDatabase में beginTransaction, setTransactionSuccessful और endTransaction को runInTransaction और room-ktx एक्सटेंशन फ़ंक्शन withTransaction के पक्ष में रोक दिया गया है.

गड़बड़ियां ठीक की गईं

  • उस गड़बड़ी को ठीक किया गया है जहां से टोकनाइज़र के आर्ग्युमेंट हटाए जा रहे थे. हालांकि, ऐसा तब होता है, जब टोकनाइज़र का इस्तेमाल SIMPLE किया गया हो. b/125427014
  • एक गड़बड़ी को ठीक किया गया, जहां रूम, इनर क्लास टाइप वाले पैरामीटर के साथ निलंबित करने वाले फ़ंक्शन की सही पहचान नहीं कर पाता था. b/123767877
  • गड़बड़ी को ठीक किया गया है, जहां INSERT, UPDATE या DELETE स्टेटमेंट के साथ @Query डीएओ तरीके को टाला गया था, लेकिन मुख्य थ्रेड में क्वेरी को तेज़ी से तैयार किया जा रहा था. b/123695593
  • कई गड़बड़ियों को ठीक किया गया, जिनमें रूम कुछ निलंबन फ़ंक्शन के लिए गलत कोड जनरेट कर सकता था. b/123466702 और b/123457323
  • गड़बड़ी को ठीक किया गया है, जहां जनरेट किए गए कोड में, तरीकों के अमान्य इस्तेमाल को सही तरीके से छिपाया नहीं जा रहा था. बी/117602586
  • androidx.sqlite की रूम डिपेंडेंसी को 1.0.2 पर अपडेट किया गया. इसमें करप्ट डेटाबेस को सही तरीके से हैंडल करने के सुधार शामिल हैं. b/124476912

आम समस्याएं

  • कमरा 2.1.0-alpha05, kotlinx-metadata-jvm आर्टफ़ैक्ट पर निर्भर करता है. यह आर्टफ़ैक्ट फ़िलहाल Maven Central (KT-27991) में उपलब्ध नहीं है. अपने प्रोजेक्ट डेटा स्टोर करने की जगहों में maven { url "https://kotlin.bintray.com/kotlinx/" } को जोड़कर, इस डिपेंडेंसी को हल किया जा सकता है.

वर्शन 2.1.0-alpha04

25 जनवरी, 2019

नई सुविधाएं

  • @Query के साथ एनोटेट किए गए ऐसे डीएओ तरीके जिनमें INSERT, UPDATE या DELETE स्टेटमेंट शामिल होते हैं, वे अब एसिंक्रोनस टाइप Single, Mayble, Completable, और ListenableFuture दे सकते हैं. इसके अलावा, ये सस्पेंड फ़ंक्शन भी हो सकते हैं. बी/120227284

एपीआई / व्यवहार में बदलाव

  • अगर @Transaction के साथ एनोटेट किया गया कोई नॉन-ऐब्स्ट्रैक्ट डीएओ तरीका, Single, Mayble, Completable, LiveData या ListenableFuture जैसे एक साथ कई तरह का गड़बड़ी दिखाता है, तो रूम में अब गड़बड़ी होगी. लेन-देन, सिर्फ़ थ्रेड के लिए होता है. फ़िलहाल, रूम के लिए किसी ऐसे फ़ंक्शन से जुड़े लेन-देन को शुरू और खत्म करना नामुमकिन है जो अलग-अलग थ्रेड में क्वेरी कर सकता है. b/120109336
  • OnConflictStrategy.FAIL और OnConflictStrategy.ROLLBACK, @Deprecated हो गए हैं, क्योंकि ये Android की मौजूदा SQLite बाइंडिंग के साथ सही तरीके से काम नहीं करते. b/117266738

गड़बड़ियां ठीक की गईं

  • गड़बड़ी को ठीक किया गया, जहां रूम, डीएओ तरीके के सस्पेंड फ़ंक्शन होने पर, रिटर्न टाइप के TypeConverter का सही तरीके से इस्तेमाल नहीं करता था. b/122988159
  • वह गड़बड़ी ठीक की गई है जिसमें रूम, इनहेरिट किए गए सस्पेंड फ़ंक्शन को गलत तरीके से, सस्पेंड नहीं करने वाले फ़ंक्शन के तौर पर पहचानता था. b/122902595
  • उस गड़बड़ी को ठीक किया गया है जिसकी मदद से, पैरंट क्लास में @Embedded फ़ील्ड के होने और कई चाइल्ड क्लास में इस्तेमाल किए जाने पर, रूम गलत कोड जनरेट करता था. b/121099048
  • उस समस्या को ठीक किया गया है जिसकी वजह से, beginTransaction() और endTransaction() के बीच डीएओ निलंबित फ़ंक्शन शुरू करने पर, डेटाबेस डेडलॉक हो जाता था. बी/120854786

वर्शन 2.1.0-alpha03

4 दिसंबर, 2018

एपीआई में किए गए बदलाव

  • @Fts3/@Fts4 में FTS tokenizer अब Enum के बजाय स्ट्रिंग लेता है. इससे रूम, कस्टम टोकनाइज़र का इस्तेमाल कर पाता है. FtsOptions में पहले से मौजूद टोकनाइज़र, अब भी स्ट्रिंग कॉन्सटेंट के तौर पर बताए गए हैं. b/119234881

नई सुविधाएं

  • कोरोआउट: डीएओ तरीकों को अब सस्पेंड फ़ंक्शन के तौर पर इस्तेमाल किया जा सकता है. रूम में सस्पेंड फ़ंक्शन की सुविधा के लिए, एक नया आर्टफ़ैक्ट रिलीज़ किया गया है, room-coroutines. b/69474692
  • @Insert, @Delete या @Update के साथ एनोटेट किए गए डीएओ तरीके, अब रिटर्न टाइप के तौर पर ListenableFuture के साथ काम करते हैं. b/119418331

गड़बड़ियां ठीक की गईं

  • वह गड़बड़ी ठीक की गई है जिसकी वजह से कमरा, @Entity की ignoredColumns प्रॉपर्टी में, कॉलम वाला कंस्ट्रक्टर ढूंढने की कोशिश गलत तरीके से कर सकता था. b/119830714
  • उस गड़बड़ी को ठीक किया गया है जिसकी वजह से रूम, डीएओ तरीके के पैरामीटर को जनरेट किए गए लागू करने के दौरान, फ़ाइनल के तौर पर मार्क नहीं करता. b/118015483
  • उस गड़बड़ी को ठीक किया गया है जिसकी वजह से खास सिंबल वाली किसी क्वेरी पर गड़बड़ी की रिपोर्ट करने पर रूम का प्रोसेसर क्रैश हो जाता था. b/119520136
  • उस गड़बड़ी को ठीक किया गया है जहां रूम, IN एक्सप्रेशन के आर्ग्युमेंट के तौर पर, Collection लागू करने के अन्य तरीकों को अस्वीकार कर देता है. b/119884035
  • उस गड़बड़ी को ठीक किया गया है जिसमें रूम से वापस आने वाले LiveData में कचरा इकट्ठा होता है और उसे हमेशा के लिए देखा जाता है. इसकी वजह से, नया डेटा नहीं निकलता. b/74477406
  • लॉक के विवाद को कम करने के लिए, RoomDatabase के क्लोज़ लॉक को अपडेट किया गया. b/117900450

वर्शन 2.1.0-alpha02

30 अक्टूबर, 2018

नई सुविधाएं

  • @Relation में @DatabaseView का रेफ़रंस देने के लिए सहायता जोड़ी गई. b/117680932

गड़बड़ियां ठीक की गईं

  • उस गड़बड़ी को ठीक किया गया है जहां Rx रिटर्न टाइप से सदस्यता लेने और डिस्पोज़ करने पर, रूम मुख्य थ्रेड में डिस्क I/O करेगा. बी/117201279
  • उस गड़बड़ी को ठीक किया गया है जिसकी वजह से रूम, Kotlin इकाई की क्लास में फ़ील्ड के लिए सही टाइप का कन्वर्टर नहीं ढूंढ पाता था. बी/111404868
  • उस गड़बड़ी को ठीक किया गया है जहां रूम, DAO इंटरफ़ेस को लागू करने के लिए गलत कोड जनरेट करेगा. इसमें Kotlin डिफ़ॉल्ट में ऐसा तरीका शामिल होगा जिसमें कोई आर्ग्युमेंट नहीं होता. b/117527454
  • रूम का SQLite ग्रामर पार्सर अपडेट किया गया. इसमें परफ़ॉर्मेंस से जुड़ी ऐसी समस्या ठीक की गई है जिसकी वजह से बिल्ड में ज़्यादा समय लग सकता है. b/117401230

वर्शन 2.1.0-alpha01

8 अक्टूबर, 2018

नई सुविधाएं

  • एफ़टीएस: रूम अब FTS3 या FTS4 टेबल को मैप करने वाली इकाइयों के साथ काम करता है. @Entity के साथ एनोटेट की गई क्लास के साथ अब @Fts3 या @Fts4 के साथ जानकारी भी जोड़ी जा सकती है, ताकि मैपिंग पूरे टेक्स्ट वाली खोज टेबल के साथ क्लास का एलान किया जा सके. एनोटेशन के तरीकों के ज़रिए, एफ़टीएस के विकल्प और मनमुताबिक बनाने के विकल्प उपलब्ध हैं. b/62356416
  • व्यू: रूम अब सेव की गई क्वेरी के तौर पर क्लास का एलान करने की सुविधा देता है. इसे @DatabaseView एनोटेशन का इस्तेमाल करके, व्यू भी कहा जाता है. b/67033276
  • ऑटो वैल्यू: रूम अब AutoValue एनोटेट की गई क्लास को इकाइयों और POJO के तौर पर एलान करने की सुविधा देता है. रूम के एनोटेशन @PrimaryKey, @ColumnInfo, @Embedded, और @Relation को अब ऑटो वैल्यू के तौर पर एनोटेट किए गए क्लास के ऐब्सट्रैक्ट तरीकों में दिखाया जा सकता है. ध्यान दें कि इन एनोटेशन के साथ @CopyAnnotations भी होना चाहिए, ताकि रूम उन्हें सही तरीके से समझ सके. b/62408420
  • अतिरिक्त Rx रिटर्न टाइप के लिए सहायता: @Insert, @Delete या @Update के साथ एनोटेट किए गए डीएओ तरीके अब Rx रिटर्न टाइप Completable, Single<T>, और Maybe<T> के साथ काम करते हैं. b/63317956
  • @Relation के साथ नहीं बदले जा सकने वाले टाइप: रूम को सेट करने लायक बनाने के लिए, पहले @Relation एनोटेट किए गए फ़ील्ड की ज़रूरत होती थी. हालांकि, अब ये कंस्ट्रक्टर पैरामीटर हो सकते हैं.
  • enableMultiInstanceInvalidation: एक ही डेटाबेस फ़ाइल का इस्तेमाल करके, RoomDatabase के कई इंस्टेंस में अमान्य होने को चालू करने के लिए, RoomDatabase.Builder में एक नया एपीआई है. एक से ज़्यादा इंस्टेंस अमान्य करने का यह तरीका, कई प्रोसेस के साथ भी काम करता है. b/62334005
  • fallbackToDestructiveMigrationOnDowngrade: यह RoomDatabase.Builder में एक नया एपीआई है. डाउनग्रेड किए जाने पर, डेटाबेस अपने-आप फिर से बनता है. b/110416954
  • ignoredColumns: यह @Entity एनोटेशन में एक नया एपीआई है. इसका इस्तेमाल करके, अनदेखा किए गए फ़ील्ड को नाम से लिस्ट किया जा सकता है. किसी इकाई पर इनहेरिट किए गए फ़ील्ड को अनदेखा करने के लिए इस्तेमाल किया जाता है. बी/63522075

एपीआई / व्यवहार में बदलाव

  • RoomDatabase में mCallback और mDatabase अब @Deprecated हैं. इन्हें रूम के अगले मेजर वर्शन से हटा दिया जाएगा. b/76109329

गड़बड़ियां ठीक की गईं

  • दो समस्याओं को ठीक किया गया है, जिनमें गड़बड़ी वाले डेटाबेस से रूम ठीक से रिकवर नहीं हो पाता था या शुरू करने के दौरान गलत माइग्रेशन हो सकता था. b/111504749 और b/111519144
  • रूम अब डेटा क्लास में Kotlin के प्राइमरी कंस्ट्रक्टर का सही तरीके से इस्तेमाल करेगा, ताकि फ़ील्ड को vars के तौर पर बताने की ज़रूरत न पड़े. बी/105769985

वर्शन 2.0.0

वर्शन 2.0.0

1 अक्टूबर, 2018

androidx.room 2.0.0 को 2.0.0-rc01 में किसी बदलाव के बिना रिलीज़ किया गया है.

वर्शन 2.0.0-rc01

20 सितंबर, 2018

androidx.room 2.0.0-rc01 को 2.0.0-beta01 के किसी भी बदलाव के बिना रिलीज़ किया गया है.

वर्शन 2.0.0-beta01

2 जुलाई, 2018

एपीआई / व्यवहार में बदलाव

  • क्वेरी कहां चलाई जाएं, इसे पसंद के मुताबिक बनाने के लिए RoomDatabase.Builder.setQueryExecutor() को जोड़ा गया
  • RxJava2 Observable की सुविधा जोड़ी गई
  • जनरेट किए गए डीएओ और डेटाबेस को अब लागू किया जा सकता है

गड़बड़ियां ठीक की गईं

  • "फ़ील्ड के लिए गेटर नहीं मिल सका" में क्लास/फ़ील्ड का नाम बताएं गड़बड़ी b/73334503
  • रूम b/110197391 के पुराने वर्शन के साथ, RoomOpenHelper की पीछे की ओर काम करने की सुविधा को ठीक किया गया है

AndroidX से पहले की डिपेंडेंसी

रूम के AndroidX से पहले के वर्शन के लिए, इन डिपेंडेंसी को शामिल करें:

dependencies {
    def room_version = "1.1.1"

    implementation "android.arch.persistence.room:runtime:$room_version"
    annotationProcessor "android.arch.persistence.room:compiler:$room_version" // For Kotlin use kapt instead of annotationProcessor

    // optional - RxJava support for Room
    implementation "android.arch.persistence.room:rxjava2:$room_version"

    // optional - Guava support for Room, including Optional and ListenableFuture
    implementation "android.arch.persistence.room:guava:$room_version"

    // Test helpers
    testImplementation "android.arch.persistence.room:testing:$room_version"
}

वर्शन 1.1.1

वर्शन 1.1.1

19 जून, 2018

1.1.1 कमरा और 1.1.1-rc1 रूम एक जैसा है.

वर्शन 1.1.1-rc1

16 मई, 2018 हमने काफ़ी अगर माइग्रेशन का इस्तेमाल किया जा रहा है, तो 1.1.0 के बजाय रूम 1.1.1-rc1 का इस्तेमाल करने का सुझाव दिया जाता है.

गड़बड़ी को ठीक किया गया है, जहां माइग्रेशन शुरू करने के बाद रूम सही तरीके से काम नहीं करेगा b/79362399

वर्शन 1.1.0

वर्शन 1.1.0-beta3

19 अप्रैल, 2018

गड़बड़ियां ठीक की गईं

  • जब Kotlin POJO किसी ऐसी रिलेशन इकाई का रेफ़रंस देता है जो कंपाइलेशन गड़बड़ी की तरह काम करती है Java में तय किया गया था b/78199923

वर्शन 1.1.0-beta2

5 अप्रैल, 2018

गड़बड़ियां ठीक की गईं

  • रूम के Rx Single और Maybe को लागू करने की प्रोसेस में हुई गंभीर गड़बड़ी को ठीक कर दिया गया है, जहां यह क्वेरी को समय से पहले रीसाइकल कर देगा. इससे एक से ज़्यादा क्वेरी जोड़ने पर समस्याएं आ सकती हैं दिए गए Single या Maybe इंस्टेंस का ऑब्ज़र्वर. b/76031240

  • [RoomDatabase.clearAllTables][ref-clearAllTables] डेटाबेस को कॉल करने पर, इसे VACUUM नहीं करेगा लेन-देन के दौरान होता है. b/77235565

वर्शन 1.1.0-beta1

21 मार्च, 2018

एपीआई में किए गए बदलाव

  • एपीआई की समीक्षा के आधार पर, @RawQuery अब क्वेरी पैरामीटर के तौर पर String को पास करना स्वीकार नहीं करता. आपको [SupportSQLiteQuery][ref-SupportSQLiteQuery] का इस्तेमाल करना होगा. (तर्क के साथ काम करने वाली सुविधा के साथ [SupportSQLiteQuery][ref-SupportSQLiteQuery] का आसानी से इंस्टेंस बनाने के लिए [ SimpleSQLiteQuery][ref-SimpleSQLiteQuery] का उदाहरण देखें).
  • RoomDatabase.Builder का [ FallbackToDestructiveMigrationFrom][ref- FallbackToDestructiveMigrationFrom] तरीके से अब vararg Integer के बजाय vararg int का इस्तेमाल कर सकता है.

गड़बड़ियां ठीक की गईं

  • [RoomDatabase.clearAllTables][ref-clearAllTables] अब WAL चेकपॉइंट सेट करके और डेटाबेस को VACUUM बदलकर, ऑपरेटिंग सिस्टम में स्पेस को वापस लाने की कोशिश करता है.
  • [@RawQuery][ref-RawQuery] अब observedEntities प्रॉपर्टी के लिए सभी पोजो को स्वीकार करता है. हालांकि, इसके लिए ज़रूरी है कि पोजो अपने Embedded फ़ील्ड या Relation के ज़रिए एक या एक से ज़्यादा इकाइयों का रेफ़रंस देता है. b/74041772
  • पेजिंग: रूम का DataSource लागू करने पर अब मल्टी-टेबल डिपेंडेंसी (जैसे कि रिलेशन और जॉइन) को सही तरीके से हैंडल किया जाता है. पहले, ये कोड नए नतीजों को ट्रिगर नहीं कर पाते थे या उन्हें इकट्ठा नहीं किया जा सकता था. b/74128314

वर्शन 1.1.0-alpha1

22 जनवरी, 2018

नई सुविधाएं

  • RawQuery: इस नए एपीआई की मदद से, @Dao मेथड को क्वेरी पैरामीटर के तौर पर एसक्यूएल मिल सकता है b/62103290, b/71458963
  • fallBackToDestructiveMigrationsFrom: RoomDatabase.Builder में इस नए एपीआई का इस्तेमाल करके इस पर ज़्यादा बारीकी से कंट्रोल किया जाता है कि स्कीमा वर्शन की मदद से, नुकसान पहुंचाने वाला माइग्रेशन शुरू किया जाता है अनुमति है (FlbackToDestructiveMigration की तुलना में) b/64989640
  • रूम अब सिर्फ़ नए पेजिंग एपीआई (ऐल्फ़ा-4+) के साथ काम करता है जो अब काम नहीं करता है LivePagedListProvider. नए रूम ऐल्फ़ा का इस्तेमाल करने के लिए, आपको पेजिंग का इस्तेमाल करना होगा alpha-4 या इसके बाद के वर्शन पर स्विच करें. अगर आपने अभी तक LivePagedListProvider से LivePagedListBuilder पर स्विच नहीं किया है, तो अब कर लें.

गड़बड़ियां ठीक की गईं

  • Kotlin Kapt टाइप के लिए बेहतर सपोर्ट. b/69164099
  • फ़ील्ड के क्रम से अब स्कीमा अमान्य नहीं होता. b/64290754