রুম
সর্বশেষ আপডেট | স্থিতিশীল রিলিজ | প্রার্থী মুক্তি | বিটা রিলিজ | আলফা রিলিজ |
---|---|---|---|---|
জানুয়ারী 29, 2025 | 2.6.1 | - | - | 2.7.0-আলফা13 |
নির্ভরতা ঘোষণা করা
রুমের উপর নির্ভরতা যোগ করতে, আপনাকে অবশ্যই আপনার প্রকল্পে Google Maven সংগ্রহস্থল যোগ করতে হবে। আরও তথ্যের জন্য Google এর Maven সংগ্রহস্থল পড়ুন।
রুমের নির্ভরতাগুলির মধ্যে রয়েছে টেস্টিং রুম মাইগ্রেশন এবং রুম RxJava
আপনার অ্যাপ বা মডিউলের জন্য build.gradle
ফাইলে আপনার প্রয়োজনীয় আর্টিফ্যাক্টগুলির জন্য নির্ভরতা যোগ করুন:
কোটলিন
dependencies { val room_version = "2.6.1" implementation("androidx.room:room-runtime:$room_version") // If this project uses any Kotlin source, use Kotlin Symbol Processing (KSP) // See Add the KSP plugin to your project ksp("androidx.room:room-compiler:$room_version") // If this project only uses Java source, use the Java annotationProcessor // No additional plugins are necessary annotationProcessor("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") }
গ্রোভি
dependencies { def room_version = "2.6.1" implementation "androidx.room:room-runtime:$room_version" // If this project uses any Kotlin source, use Kotlin Symbol Processing (KSP) // See KSP Quickstart to add KSP to your build ksp "androidx.room:room-compiler:$room_version" // If this project only uses Java source, use the Java annotationProcessor // No additional plugins are necessary annotationProcessor "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" }
KAPT প্লাগইন ব্যবহার করার তথ্যের জন্য, KAPT ডকুমেন্টেশন দেখুন।
KSP প্লাগইন ব্যবহারের তথ্যের জন্য, KSP কুইক-স্টার্ট ডকুমেন্টেশন দেখুন।
Kotlin এক্সটেনশন ব্যবহার করার তথ্যের জন্য, ktx ডকুমেন্টেশন দেখুন।
নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, বিল্ড নির্ভরতা যুক্ত করুন দেখুন।
ঐচ্ছিকভাবে, নন-অ্যান্ড্রয়েড লাইব্রেরির জন্য (যেমন জাভা বা কোটলিন শুধুমাত্র গ্রেডল মডিউল) আপনি রুম টীকা ব্যবহার করতে androidx.room:room-common
উপর নির্ভর করতে পারেন।
কম্পাইলার বিকল্পগুলি কনফিগার করা হচ্ছে
রুম নিম্নলিখিত টীকা প্রসেসর বিকল্প আছে.
room.schemaLocation | directory প্রদত্ত ডিরেক্টরিতে JSON ফাইলগুলিতে ডাটাবেস স্কিমা রপ্তানি সক্ষম করে৷ আরও তথ্যের জন্য রুম মাইগ্রেশন দেখুন। |
room.incremental | boolean Gradle ইনক্রিমেন্টাল টীকা প্রসেসর সক্ষম করে। ডিফল্ট মান true । |
room.generateKotlin | boolean জাভার পরিবর্তে কোটলিন সোর্স ফাইল তৈরি করুন। KSP প্রয়োজন। ডিফল্ট মান false । আরও বিস্তারিত জানার জন্য সংস্করণ 2.6.0 নোট দেখুন। |
রুম গ্রেডল প্লাগইন ব্যবহার করুন
রুম সংস্করণ 2.6.0 এবং উচ্চতর, আপনি রুম কম্পাইলারের বিকল্পগুলি কনফিগার করতে রুম গ্রেডল প্লাগইন ব্যবহার করতে পারেন। প্লাগইনটি প্রজেক্টটিকে এমনভাবে কনফিগার করে যাতে জেনারেট করা স্কিমাগুলি (যা কম্পাইল টাস্কগুলির একটি আউটপুট এবং স্বয়ংক্রিয়-মাইগ্রেশনের জন্য ব্যবহৃত হয়) সঠিকভাবে পুনরুত্পাদনযোগ্য এবং ক্যাশেযোগ্য বিল্ডের জন্য কনফিগার করা হয়।
প্লাগইন যোগ করতে, আপনার শীর্ষ-স্তরের গ্রেডল বিল্ড ফাইলে, প্লাগইন এবং এর সংস্করণটি সংজ্ঞায়িত করুন।
গ্রোভি
plugins { id 'androidx.room' version "$room_version" apply false }
কোটলিন
plugins { id("androidx.room") version "$room_version" apply false }
মডিউল-স্তরের গ্রেডল বিল্ড ফাইলে, প্লাগইনটি প্রয়োগ করুন এবং room
এক্সটেনশন ব্যবহার করুন।
গ্রোভি
plugins { id 'androidx.room' } android { ... room { schemaDirectory "$projectDir/schemas" } }
কোটলিন
plugins { id("androidx.room") } android { ... room { schemaDirectory("$projectDir/schemas") } }
রুম গ্রেডল প্লাগইন ব্যবহার করার সময় একটি schemaDirectory
সেট করা প্রয়োজন। এটি রুম কম্পাইলার এবং বিভিন্ন কম্পাইল কাজ এবং এর ব্যাকএন্ড (javac, KAPT, KSP) কনফিগার করবে স্কিমা ফাইলগুলিকে স্বাদযুক্ত ফোল্ডারে আউটপুট করতে, উদাহরণস্বরূপ schemas/flavorOneDebug/com.package.MyDatabase/1.json
। এই ফাইলগুলিকে যাচাইকরণ এবং স্বয়ংক্রিয় স্থানান্তরের জন্য ব্যবহার করার জন্য সংগ্রহস্থলে চেক করা উচিত।
কিছু বিকল্প রুম গ্রেডল প্লাগইনের সমস্ত সংস্করণে কনফিগার করা যায় না, যদিও সেগুলি রুম কম্পাইলার দ্বারা সমর্থিত। নীচের সারণী প্রতিটি বিকল্পের তালিকা করে এবং রুম গ্রেডল প্লাগইনের সংস্করণ দেখায় যা 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... ] } } } }
কোটলিন
// 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
ব্যবহার করা প্রয়োজন যাতে গ্রেডল আপ-টু-ডেট চেক পরিচালনা করার সময় এই ডিরেক্টরি সম্পর্কে জানতে পারে। আপনার রুম ডাটাবেস মাইগ্রেট করুন CommandLineArgumentsProvider
এর সম্পূর্ণ বাস্তবায়ন দেখায় যা স্কিমা অবস্থান প্রদান করে।
প্রতিক্রিয়া
আপনার প্রতিক্রিয়া জেটপ্যাককে আরও ভাল করতে সাহায্য করে। আপনি যদি নতুন সমস্যা আবিষ্কার করেন বা এই লাইব্রেরির উন্নতির জন্য ধারনা পান তাহলে আমাদের জানান। আপনি একটি নতুন তৈরি করার আগে অনুগ্রহ করে এই লাইব্রেরিতে বিদ্যমান সমস্যাগুলি দেখুন৷ আপনি তারকা বোতামে ক্লিক করে একটি বিদ্যমান সমস্যায় আপনার ভোট যোগ করতে পারেন।
আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।
সংস্করণ 2.7
সংস্করণ 2.7.0-alpha13
জানুয়ারী 29, 2025
androidx.room:room-*:2.7.0-alpha13
প্রকাশিত হয়েছে। সংস্করণ 2.7.0-alpha13-এ এই কমিট রয়েছে।
এপিআই পরিবর্তন
- রুম এখন কোটলিন ভাষা 2.0 কে লক্ষ্য করে এবং কোটলিন 2.0 এবং সমতুল্য বা উচ্চ ভাষার সংস্করণের সাথে কম্পাইল করার জন্য প্রকল্পগুলির প্রয়োজন হবে। ( I8efb0 , b/315461431 , b/384600605 )
বাগ ফিক্স
- রুম কেএমপি ডাটাবেস বিল্ডারে একটি সমস্যা সমাধান করুন যখন অ্যান্ড্রয়েডে একটি পাথের পরিবর্তে একটি সাধারণ নাম ব্যবহার করা হয়েছিল এবং ডাটাবেস ফাইলের সমাধান করা পথটি অ্যাপের ডেটা ডিরেক্টরিতে অবস্থিত হবে না। ( I83315 , b/377830104 )
- রুম গ্রেডল প্লাগইনের সাথে একটি সমস্যা সমাধান করুন যেখানে স্কিমা ইনপুট এবং আউটপুট কনফিগার করার ফলে অ্যান্ড্রয়েড প্রোজেক্টে সমস্যা দেখা দিয়েছে:
property 'inputDirectory' is final and cannot be changed any further.
( 1dbb4c , b/376071291 ) - রুম গ্রেডল প্লাগইন-এ KSP2-এর জন্য সমর্থন যোগ করুন যেখানে প্লাগইন দ্বারা স্কিমা ডিরেক্টরি সঠিকভাবে সেট আপ করা হয়নি এমন একটি সমস্যা সমাধান করা। ( Iec3c4 , b/379159770 )
বাহ্যিক অবদান
-
Room
পেজিং ইন্টিগ্রেশনের সাথে একটি সমস্যা সমাধান করুন যার ফলে UI লাফ দেয় যখন রিফ্রেশ করার প্রাথমিক কী তালিকার শেষের খুব কাছাকাছি থাকে। ইভাকে ধন্যবাদ! ( I2abbe , b/389729367 )
সংস্করণ 2.7.0-alpha12
11 ডিসেম্বর, 2024
androidx.room:room-*:2.7.0-alpha12
প্রকাশিত হয়েছে। সংস্করণ 2.7.0-alpha12-এ এই কমিট রয়েছে।
এপিআই পরিবর্তন
- পরীক্ষামূলক API
RoomDatabase.Builder.setInMemoryTrackingMode()
যোগ করুন রুম ইন-মেমরি টেবিল ব্যবহার করবে কি না অবৈধ ট্র্যাকিংয়ের জন্য কনফিগার করতে। ( I2a9b2 , b/185414040 )
বাগ ফিক্স
- ধ্বংসাত্মক মাইগ্রেশনগুলি এখন দৃশ্যগুলিকে ড্রপ করে যাতে সেগুলি পুনরায় তৈরি করা হয়, যখন এটি বন্ধ থাকে তখন বিদ্যমান আচরণের সাথে
allowDestructiveMigrationForAllTables
চালু (KMP ডিফল্ট) আচরণ সারিবদ্ধ করে৷ ( 0a3e83 , b/381518941 )
সংস্করণ 2.7.0-alpha11
30 অক্টোবর, 2024
androidx.room:room-*:2.7.0-alpha11
প্রকাশিত হয়েছে। সংস্করণ 2.7.0-alpha11-এ এই কমিট রয়েছে।
এপিআই পরিবর্তন
- রুম-পেজিংয়ের জন্য একটি
RawRoomQuery
প্রাপ্ত একটি সাসপেন্ড ফাংশন হতে নতুন যোগ করাconvertRows()
পদ্ধতির স্বাক্ষরটিকে আবার দেখুন। ( IE57b5 , b/369136627 )
বাগ ফিক্স
- রুম-পেজিং-এ সমস্যাটি সমাধান করা হয়েছে যেখানে
PagingSource
সাথে একযোগে@Relation
ব্যবহার করার সময় অবৈধ কোড তৈরি করা হচ্ছে।
সংস্করণ 2.7.0-alpha10
অক্টোবর 16, 2024
androidx.room:room-*:2.7.0-alpha10
প্রকাশিত হয়েছে। সংস্করণ 2.7.0-alpha10-এ এই কমিট রয়েছে।
এপিআই পরিবর্তন
- অ-অ্যান্ড্রয়েড এবং নন-জেভিএম প্ল্যাটফর্মগুলিতে
ByteBuffer
সাথে সম্পর্ক সমর্থন করার জন্য অভ্যন্তরীণByteArrayWrapper
ক্লাস তৈরি করুন। ( I75543 , b/367205685 ) - একটি কলামের ডেটা টাইপ পুনরুদ্ধার সক্ষম করতে
SQLiteStatement.getColumnType()
এর সাথে বিভিন্নSQLITE_DATA_*
ফলাফলের ধ্রুবক যোগ করুন। ( I1985c , b/369636251 )
সংস্করণ 2.7.0-alpha09
2 অক্টোবর, 2024
androidx.room:room-*:2.7.0-alpha09
প্রকাশিত হয়েছে। সংস্করণ 2.7.0-alpha09-এ এই কমিট রয়েছে।
বাগ ফিক্স
-
room-paging
এর KMP বাস্তবায়নের সাথে একটি সমস্যা সমাধান করুন যা একটিError code: 8, message: attempt to write a readonly database
৷ ( b/368380988 )
সংস্করণ 2.7.0-alpha08
সেপ্টেম্বর 18, 2024
androidx.room:room-*:2.7.0-alpha08
প্রকাশিত হয়েছে। সংস্করণ 2.7.0-alpha08-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
-
room-paging
আর্টিফ্যাক্টগুলি কেএমপি সামঞ্জস্যপূর্ণ হতে স্থানান্তরিত করা হয়েছে। ( Ib8756 , b/339934824 ) - API
invalidationTrackerFlow()
একটি প্রথম পক্ষের API হিসাবেInvalidationTracker.createFlow()
হিসাবে প্রচলিত হয়েছে এবং এখন KMP প্রকল্পগুলিতে নন-অ্যান্ড্রয়েড সোর্স সেটগুলির জন্য উপলব্ধ৷ ( I1fbfa , ( I8fb29 ), b/329291639 , b/329315924 )
এপিআই পরিবর্তন
- রুমের সমস্ত সতর্কতা এবং ত্রুটি বার্তাগুলি যেগুলি
Cursor
শব্দটি ব্যবহার করে সেগুলি সরিয়ে দেওয়া হয়েছে বা প্রতিস্থাপন করা হয়েছে, কারণCursor
আর রুমের KMP সংস্করণে ব্যবহারের জন্য একটি সঠিক সাধারণ শব্দ নয়৷ ( Id8cd9 , b/334087492 )
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে রুম KMP নন-JVM প্ল্যাটফর্মের জন্য
UUID
ব্যবহার করে কোড নির্গত করার চেষ্টা করবে। ( b/362994709 ) - রুম গ্র্যাডল প্লাগইনের সাথে একটি সমস্যা সমাধান করা হয়েছে যা কম্পোজ মাল্টিপ্ল্যাটফর্ম সহ একটি KMP প্রকল্পে ব্যবহার করার সময় 'কনফিগারেশনের বৈশিষ্ট্যগুলি পরিবর্তন করতে পারে না ... মিউটেশনের জন্য লক করার পরে' এর মতো একটি ত্রুটি সৃষ্টি করবে৷ ( b/343408758 )
সংস্করণ 2.7.0-alpha07
আগস্ট 21, 2024
androidx.room:room-*:2.7.0-alpha07
প্রকাশিত হয়েছে। সংস্করণ 2.7.0-alpha07-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
- রুম গ্রেডল প্লাগইন এখন স্বয়ংক্রিয়ভাবে রপ্তানিকৃত স্কিমাগুলিকে Android ইন্সট্রুমেন্টেশন টেস্ট রিসোর্স সোর্সে যুক্ত করবে যাতে সেগুলি
MigrationTestHelper
দ্বারা ব্যবহার করা যায়৷
বাগ ফিক্স
-
RoomDatabaseConstructor
জেনারেট করা 'প্রকৃত' এর সাথে একটি সমস্যা সমাধান করা হয়েছে যদিinitialize
ফাংশনে 'প্রকৃত' মডিফায়ার অনুপস্থিত থাকে যদি এই ধরনের ফাংশনটি 'প্রত্যাশিত' ঘোষণাতেও ওভাররাইড করা হয়। ( 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()
নামে একটি তৈরি করা ফাংশন উল্লেখ করার কৌশলটি আর কার্যকর। দুটি নতুন API, @ConstructedBy
এবং RoomDatabaseConstructor
চালু করা হয়েছে যা instantiateImpl()
কৌশল প্রতিস্থাপন করে। নতুন কৌশল নিম্নরূপ:
RoomDatabaseConstructor
প্রয়োগ করে এমন একটি প্রত্যাশার বস্তুর সংজ্ঞা দিনexpect object MyDatabaseCtor : RoomDatabaseConstructor<MyDatabase>
@ConstructedBy
ব্যবহার করে@Database
ঘোষণার সাথে বস্তুটিকে লিঙ্ক করুন@Database(...) @ConstructedBy(MyDatabaseCtor::class) // NEW abstract class MyDatabase : RoomDatabase
একটি নতুন ডাটাবেস উদাহরণ তৈরি করুন কিন্তু একটি কারখানা যুক্তি পাস না করে
fun createNewDatabase(path: String) = Room.databaseBuilder<AppDatabase>(name = path) .setDriver(BundledSQLiteDriver()) .setQueryCoroutineContext(Dispatchers.IO) .build()
b/316978491 , b/338446862 , এবং b/342905180 সংশোধন করে
-
RoomRawQuery
নামক একটি নতুন API যোগ করে রুম KMP-তে@RawQuery
জন্য সমর্থন যা কাঁচা SQL স্ট্রিং এবং একটি বিবৃতিতে আর্গুমেন্ট আবদ্ধ করার জন্য একটি ফাংশন ধরে রাখার ক্ষেত্রেSupportSQLiteQuery
এর মতো।@RawQuery
টীকাযুক্ত ফাংশন এখন একটিRoomRawQuery
তাদের একক প্যারামিটার হিসাবে গ্রহণ করতে পারে। ( Iea844 , b/330586815 ) -
setQueryCallback()
এর একটি ওভারলোড যোগ করুন যা একটিCoroutineContext
গ্রহণ করে। ( Id66ff , b/309996304 ) -
linuxArm64
Kotlin মাল্টিপ্ল্যাটফর্ম লক্ষ্যগুলির জন্য সমর্থন যোগ করা হয়েছে ( I139d3 , b/338268719 )
বাগ ফিক্স
- একটি সমস্যা সমাধান করুন যেখানে রুম ভুলভাবে নন-অ্যান্ড্রয়েড টার্গেটে
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-এ এই কমিট রয়েছে।
বাগ ফিক্স
- রুমের টীকা প্রসেসরে একটি সমস্যা সমাধান করা হলে একটি DAO-তে বহু-মানচিত্র রিটার্ন টাইপ সংজ্ঞায়িত করা হলে বেমানান KMP কোড তৈরি হবে। ( 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 সম্পূর্ণ নয় এবং দলটি নতুন কম্পাইলারে বিভিন্ন API এবং আচরণের পরিবর্তন নিয়ে কাজ করছে। ( 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-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
- কোটলিন মাল্টিপ্ল্যাটফর্ম (কেএমপি) সমর্থন : এই রিলিজে, রুমটিকে কোটলিন মাল্টিপ্ল্যাটফর্ম (কেএমপি) লাইব্রেরিতে পরিণত করার জন্য রিফ্যাক্টর করা হয়েছে। যদিও এখনও কিছু কাজ করা বাকি আছে, এই রিলিজটি রুমের একটি নতুন সংস্করণ প্রবর্তন করে যেখানে বেশিরভাগ কার্যকারিতা "সাধারণ-কৃত" (মাল্টিপ্ল্যাটফর্ম হতে তৈরি) করা হয়েছে। বর্তমান সমর্থিত প্ল্যাটফর্মগুলি হল অ্যান্ড্রয়েড, আইওএস, জেভিএম (ডেস্কটপ), নেটিভ ম্যাক এবং নেটিভ লিনাক্স। নতুন সমর্থিত প্ল্যাটফর্মগুলিতে অনুপস্থিত কার্যকারিতা আসন্ন রুম রিলিজে "বৈশিষ্ট্য-সম্পূর্ণ" করা হবে।
কিভাবে রুম KMP ব্যবহার শুরু করবেন সে সম্পর্কে আরও তথ্যের জন্য, অনুগ্রহ করে অফিসিয়াল রুম KMP ডকুমেন্টেশন দেখুন।
- KSP-তে Kotlin কোড জেনারেশন ডিফল্টরূপে চালু করা হয়েছে যদি KSP-এর মাধ্যমে প্রক্রিয়াকরণ করা হয়। KAPT বা জাভা শুধুমাত্র প্রকল্পগুলির জন্য, রুম এখনও জাভা উত্স তৈরি করবে।
এপিআই পরিবর্তন
-
Room.databaseBuilder()
এর একটি ওভারলোড যুক্ত করা হয়েছে যা একটি ল্যাম্বডা প্যারামিটার নেয় যা একটি রুম জেনারেটেড ফাংশনের সাথে ব্যবহার করা হয় যাতে জেনারেট করাRoomDatabase
বাস্তবায়নকে ইনস্ট্যান্টিয়েট করার সময় প্রতিফলন ব্যবহার করা এড়ানো যায়। উদাহরণ ব্যবহার হল:
Room.databaseBuilder<MyDatabase>(
context = appContext,
name = dbFilePath,
factory = { MyDatabase::class.instantiateImpl() }
)
- একটি
CoroutineContext
সহ একটি রুম কনফিগার করার জন্য একটি API বিল্ডারে যোগ করা হয়েছে:RoomDatabase.Builder.setQueryCoroutineContext
। মনে রাখবেন যে একটিRoomDatabase
শুধুমাত্রsetQueryExecutor
ব্যবহার করে নির্বাহকদের সাথে বা একটি Coroutine প্রসঙ্গের সাথে কনফিগার করা যেতে পারে তবে উভয়ই নয়। - একটি
SQLite
ড্রাইভারের সাথে রুম কনফিগার করার জন্য একটি API যোগ করা হয়েছে:RoomDatabase.Builder.setDriver()
।SQLite
Driver API সম্পর্কে আরও তথ্যের জন্য SQLite KMP ডকুমেন্টেশন পড়ুন - ড্রাইভার API গুলি থেকে অন্তর্নিহিত
SQLiteConnection
অ্যাক্সেস করার জন্য API যোগ করা হয়েছে:RoomDatabase.useReaderConnection
এবংRoomDatabase.useWriterConnection
। - Varios রুম সম্পর্কিত কলব্যাকগুলির এখন একটি ওভারলোডেড সংস্করণ রয়েছে যা
SupportSQLiteDatabase
পরিবর্তেSQLiteConnection
গ্রহণ করে। একটি KMP প্রকল্পে স্থানান্তরিত করার সময় এগুলি ওভাররাইড করার উদ্দেশ্যে করা হয়৷ একটি সাধারণ KMP মডিউলে একটি Android অ্যাপে রুম ব্যবহার স্থানান্তরিত করার বিষয়ে আরও তথ্যের জন্য মাইগ্রেশন গাইড পড়ুন। কলব্যাকগুলি হল:-
Migration.migrate(SQLiteConnection)
-
AutoMigrationSpec.onPostMigrate(SQLiteConnection)
-
RoomDatabase.Callback.onCreate(SQLiteConnection)
-
RoomDatabase.Callback.onDestructiveMigration(SQLiteConnection)
-
RoomDatabase.Callback.onOpen(SQLiteConnection)
-
- KTX আর্টিফ্যাক্ট
androidx.room:room-ktx
এর সমস্ত API সহ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)
এর মাধ্যমে পর্যবেক্ষণযোগ্য। মনে রাখবেন যে এটি একটি আচরণগত পরিবর্তনকে চিহ্নিত করে যেখানে অতীতে লোড ত্রুটিগুলি ডাও পদ্ধতি দ্বারা নিক্ষিপ্ত একটি ব্যতিক্রম হিসাবে বুদবুদ হবে যা লোডকে ট্রিগার করেছিল। ( I93887 , b/302708983 )
সংস্করণ 2.6.0
18 অক্টোবর, 2023
androidx.room:room-*:2.6.0
প্রকাশিত হয়েছে। সংস্করণ 2.6.0 এই কমিট ধারণ করে.
2.5.0 থেকে গুরুত্বপূর্ণ পরিবর্তন
- কোটলিন কোড জেনারেশন (বা "কোটলিন কোডজেন") সক্ষম করার বিকল্পটি এখন রুম কেএসপি-তে উপলব্ধ। ( 4297ec0 )। রুমে Kotlin CodeGen চালু করতে, KSP-এর জন্য আপনার প্রসেসরের বিকল্পগুলিতে
room.generateKotlin
বিকল্পের নাম যোগ করুন। KSP-এর জন্য প্রসেসর বিকল্পগুলি কীভাবে পাস করবেন সে সম্পর্কে আরও বিশদ বিবরণের জন্য, KSP ডকুমেন্টেশন দেখুন।
দ্রষ্টব্য: Kotlin CodeGen ব্যবহার করার সময়, এটি উল্লেখ করা গুরুত্বপূর্ণ যে অতিরিক্ত বিধিনিষেধ যোগ করা হয়েছে। Kotlin CodeGen-এ DAO গেটার বা DAO কোয়েরি হিসাবে বিমূর্ত বৈশিষ্ট্যগুলিকে অনুমোদন দেওয়া হয়নি, এবং সম্পত্তির মান অপরিবর্তনীয় এবং একটি নির্দিষ্ট সঞ্চিত ফলাফল রয়েছে এমন মিথ্যা ধারণা এড়াতে ফাংশন হিসাবে পুনরায় লেখা হবে বলে আশা করা হচ্ছে। আরেকটি বিধিনিষেধ যা যোগ করা হয়েছে তা হল যে শূন্য সংগ্রহের রিটার্নের ধরন আর Kotlin CodeGen-এর রুমে অনুমোদিত নয়।
সতর্কতা: আপনি দেখতে পেতে পারেন যে আপনার প্রকল্পগুলি কোটলিন কোডজেন ব্যবহার করার সময় শূন্যতার ক্ষেত্রে আরও কঠোর। কোটলিন কোডজেনে, টাইপ আর্গুমেন্টের শূন্যতা গুরুত্বপূর্ণ, যেখানে জাভাতে এটি বেশিরভাগই উপেক্ষা করা হয়। উদাহরণস্বরূপ, ধরা যাক আপনার একটি `প্রবাহ আছে
- Room Gradle Plugin-এর জন্য নতুন আর্টিফ্যাক্টটি
androidx.room
আইডি সহ রুমে যোগ করা হয়েছে, যা Gradle টীকা প্রসেসর বিকল্পের মাধ্যমে স্কিমাগুলির ইনপুট এবং আউটপুট থাকার বিষয়ে রুমের বিদ্যমান বিভিন্ন সমস্যার সমাধান করে। আরো বিস্তারিত জানার জন্য, রুম সংস্করণ 2.6.0-alpha02 রিলিজ নোট পড়ুন। - রুম সত্তার মান ক্লাস এখন KSP-এর জন্য সমর্থিত। ( 4194095 )
- DAO ফাংশনে নেস্টেড ম্যাপ রিটার্নের ধরন এখন রুমে সমর্থিত। ( 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-এ এই কমিট রয়েছে।
বাগ ফিক্স
-
2067 SQLITE_CONSTRAINT_UNIQUE
ব্যতিক্রম একটি আপসার্টের সময় নিক্ষেপ করা হলে আপসার্টের সময় বিশেষ ক্ষেত্রেSQLite
ব্যতিক্রমটি পরিচালনা করা, আপসার্ট একটি আপডেট সম্পাদন করা উচিত। ( if2849 , b/243039555 )
সংস্করণ 2.6.0-alpha03
9 আগস্ট, 2023
androidx.room:room-*:2.6.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 2.6.0-alpha03 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট্য
এপিআই পরিবর্তন
-
@MapInfo
প্রতিস্থাপন করতে@MapColumn
নামে একটি নতুন ধরনের টীকা তৈরি করা হয়েছে, যা এখন অবমূল্যায়িত হয়েছে। একটি@MapInfo
টীকায় প্রদত্ত প্রতিটি কলাম নামের (keyColumnName
,valueColumnName
, বা উভয়) জন্য, আপনাকে শুধুমাত্রcolumnName
সহ একটি@MapColumn
টীকা ঘোষণা করতে হবে এবং রিটার্ন DAO-এ ফাংশনের কী বা মান উল্লেখ করা নির্দিষ্ট টাইপ আর্গুমেন্টে টীকাটি ব্যবহার করতে হবে। এর কারণ হল@MapColumn
টীকাটি@MapInfo
মতো ফাংশনের পরিবর্তে DAO ফাংশনের রিটার্ন টাইপের মধ্যে টাইপ আর্গুমেন্টে সরাসরি ব্যবহার করা হয়। আরও তথ্যের জন্য, অনুগ্রহ করে@MapColumn
ডকুমেন্টেশন দেখুন। ( Ib0305 , b/203008711 ) - কম্প্যাটিবিলিটি সাপ্রেশন ( I8e87a , b/287516207 ) টীকা করতে API ফাইল আপডেট করা হয়েছে
- Room Gradle প্লাগইন API গুলি আপডেট করা হয়েছে যাতে সবসময় প্রতি-ভেরিয়েন্ট কনফিগারেশনের প্রয়োজন হয় না। এর মানে হল যে প্লাগইনটি একাধিক ডিরেক্টরি তৈরি না করেই সমস্ত ভেরিয়েন্টের জন্য একটি বিশ্বব্যাপী অবস্থান গ্রহণ করতে পারে, মসৃণ স্থানান্তর সক্ষম করে যা প্লাগইনের সুবিধাগুলি (পুনরুত্পাদনযোগ্য এবং ক্যাশেযোগ্য বিল্ড) বজায় রেখে ম্যানুয়ালি ফ্লেভার কনফিগার করতে বা টাইপ স্কিমা তৈরি করতে যথেষ্ট নমনীয়। ( 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 এই কমিট ধারণ করে।
রুম গ্রেডল প্লাগইন
এই নতুন রিলিজে androidx.room
আইডি সহ রুম গ্রেডল প্লাগইন-এর জন্য একটি নতুন আর্টিফ্যাক্ট রয়েছে, যা গ্র্যাডল টীকা প্রসেসর বিকল্পের মাধ্যমে স্কিমাগুলির ইনপুট এবং আউটপুট থাকার বিষয়ে রুমের বিদ্যমান বিভিন্ন সমস্যার সমাধান করে। রুম গ্রেডল প্লাগইন প্রকল্পটিকে এমনভাবে কনফিগার করে যে তৈরি করা স্কিমাগুলি যা স্বয়ং-মাইগ্রেশনের জন্য ব্যবহার করা হয় এবং কম্পাইল টাস্কগুলির আউটপুট পুনরুত্পাদনযোগ্য এবং ক্যাশেযোগ্য বিল্ডের জন্য সঠিকভাবে কনফিগার করা হয়। প্লাগইনটি বেস স্কিমা অবস্থান কনফিগার করতে একটি DSL অফার করে:
room {
schemaDirectory("$projectDir/schemas/")
}
প্লাগইনটি তারপর রুম কম্পাইলার এবং বিভিন্ন কম্পাইল কাজ এবং এর ব্যাকএন্ডগুলি (javac, KAPT, KSP) স্কিম ফাইলগুলিকে স্বাদযুক্ত ফোল্ডারে আউটপুট করতে কনফিগার করবে, যেমন schemas/flavorOneDebug/com.package.MyDatabase/1.json
। যথারীতি এই ফাইলগুলি যাচাইকরণ এবং স্বয়ংক্রিয় স্থানান্তরের জন্য ব্যবহার করার জন্য সংগ্রহস্থলে চেক-ইন করা হয়। টীকা প্রসেসর বিকল্পের পরিবর্তে প্লাগইন ব্যবহার করার জন্য স্থানান্তরিত করার পরে, বিদ্যমান স্কিমা ফাইলগুলি প্লাগইন দ্বারা তৈরি করা ফ্লেভার ডিরেক্টরিগুলিতে অনুলিপি করা আবশ্যক, এটি একটি এককালীন মাইগ্রেশন অপারেশন যা ম্যানুয়ালি করা আবশ্যক৷ বিকাশকারী.android.com- এর স্কিমা ডকুমেন্টেশন ভবিষ্যতে আপডেট করা হবে একবার ফিডব্যাকের সমাধান হয়ে গেলে এবং প্লাগইনটি স্থিতিশীল হয়ে গেলে, তাই দয়া করে একবার চেষ্টা করুন৷
এপিআই পরিবর্তন
- SAM রূপান্তর ব্যবহারের অনুমতি দেওয়ার জন্য
RoomDatabase.QueryCallback
কে একটি কার্যকরী ইন্টারফেস হিসাবে সংজ্ঞায়িত করা হয়েছে। ( Iab8ea , b/281008549 )
বাগ ফিক্স
- জাভা থেকে কোটলিনে রুম সোর্স স্থানান্তরের পরে রোবোলেক্ট্রিক-এ ডাটাবেস ইনস্ট্যান্ট করার সময় উদ্ভূত সমস্যার সমাধান করা। ( Ic053c , b/274924903 )
সংস্করণ 2.6.0-alpha01
22 মার্চ, 2023
androidx.room:room-*:2.6.0-alpha01
প্রকাশিত হয়েছে। 2.6.0-alpha01 সংস্করণে এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
- KSP-এর জন্য রুমে সাপোর্টিং ভ্যালু ক্লাস। রুম এখন সত্তার মান ক্লাস সমর্থন করতে সক্ষম. ( 4194095 )
- কোটলিন কোড জেনারেশন (বা "কোটলিন কোডজেন") এখন রুমে সক্ষম করা যেতে পারে ( 4297ec0 )। রুমে Kotlin CodeGen চালু করতে, KSP-এর জন্য আপনার প্রসেসরের বিকল্পগুলিতে
room.generateKotlin
বিকল্পের নাম যোগ করুন। KSP-এর জন্য প্রসেসর বিকল্পগুলি কীভাবে পাস করবেন সে সম্পর্কে আরও বিশদ বিবরণের জন্য, KSP ডকুমেন্টেশন দেখুন।
দ্রষ্টব্য: Kotlin CodeGen ব্যবহার করার সময়, এটি উল্লেখ করা গুরুত্বপূর্ণ যে অতিরিক্ত বিধিনিষেধ যোগ করা হয়েছে। Kotlin CodeGen-এ DAO গেটার বা DAO কোয়েরি হিসাবে বিমূর্ত বৈশিষ্ট্যগুলিকে অনুমোদন দেওয়া হয়নি, এবং সম্পত্তির মান অপরিবর্তনীয় এবং একটি নির্দিষ্ট সঞ্চিত ফলাফল রয়েছে এমন মিথ্যা ধারণা এড়াতে ফাংশন হিসাবে পুনরায় লেখা হবে বলে আশা করা হচ্ছে। আরেকটি বিধিনিষেধ যা যোগ করা হয়েছে তা হল যে শূন্য সংগ্রহের রিটার্নের ধরন আর Kotlin CodeGen-এর রুমে অনুমোদিত নয়।
সতর্কতা: আপনি দেখতে পেতে পারেন যে আপনার প্রকল্পগুলি কোটলিন কোডজেন ব্যবহার করার সময় শূন্যতার ক্ষেত্রে আরও কঠোর। কোটলিন কোডজেনে, টাইপ আর্গুমেন্টের শূন্যতা গুরুত্বপূর্ণ, যেখানে জাভাতে এটি বেশিরভাগই উপেক্ষা করা হয়। উদাহরণস্বরূপ, ধরা যাক আপনার একটি `প্রবাহ আছে
এপিআই পরিবর্তন
- DAO পদ্ধতি রিটার্ন প্রকারে বাতিলযোগ্য সংগ্রহের অর্থহীন ব্যবহারের বিরুদ্ধে রক্ষা করা। ( I777dc , b/253271782 , b/259426907 )
- একটি ফ্লো তৈরি করার জন্য একটি API যোগ করুন যা অবৈধ ট্র্যাকার পরিবর্তনগুলি নির্গত করে। এপিআই এমন স্ট্রীম তৈরি করার জন্য উপযোগী যা ডাটাবেস পরিবর্তনের প্রতিক্রিয়া জানাতে হবে। ( I8c790 , b/252899305 )
বাগ ফিক্স
- কোটলিন কোডজেনে DAO গেটার বা DAO কোয়েরি হিসাবে বিমূর্ত বৈশিষ্ট্যগুলিকে অস্বীকৃতি দিন, পরিবর্তে সম্পত্তির মান অপরিবর্তনীয় এবং একটি নির্দিষ্ট সঞ্চিত ফলাফল রয়েছে এমন মিথ্যা ধারণা এড়াতে তাদের ফাংশন হিসাবে পুনরায় লেখা উচিত। ( 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 )
- রোবোলেক্ট্রিক পরীক্ষায় ব্যবহার করার সময় রুম একটি ত্রুটি নিক্ষেপের কারণ একটি সমস্যা সমাধান করুন। ( f79bea , b/274924903 )
সংস্করণ 2.5.1
সংস্করণ 2.5.1
22 মার্চ, 2023
androidx.room:room-*:2.5.1
প্রকাশিত হয়েছে। সংস্করণ 2.5.1 এই কমিট ধারণ করে.
বাগ ফিক্স
- ডাটাবেস ইতিমধ্যে খোলা থাকলে
FrameworkSQLiteHelper
এ ডাটাবেস প্যারেন্ট ডিরেক্টরি পরীক্ষা করা এড়িয়ে চলুন। ( 5de86b8 ) - ডাটাবেস ইতিমধ্যে খোলা আছে কিনা তা পরীক্ষা করার সময় একটি
isOpenInternal
চেক ব্যবহার করুন। ( e91fb35 ) -
Room
এর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
উত্স জাভা থেকে কোটলিনে রূপান্তরিত করা হয়েছে। মনে রাখবেন যে লাইব্রেরি কোটলিনে রূপান্তরের কারণে আপনার কোডটি কোটলিনে থাকলে আপনি উৎসের অসঙ্গতি সমস্যার সম্মুখীন হতে পারেন। উদাহরণস্বরূপ, একটি পরিচিত উৎসের অসঙ্গতিপূর্ণ পরিবর্তন হল যেInvalidationTracker
এ আপনাকে এখনObserver
-এonInvalidate()
ঘোষণা করতে হবে যাতেMutableSet
নয়,Set
টাইপের একটি প্যারাম থাকে। অধিকন্তু, নির্দিষ্ট গেটার পদ্ধতিগুলিকে বৈশিষ্ট্যগুলিতে রূপান্তরিত করা হয়েছিল যার জন্য কোটলিন ফাইলগুলিতে সম্পত্তি অ্যাক্সেস সিনট্যাক্স প্রয়োজন। কোনো উল্লেখযোগ্য অসঙ্গতি থাকলে অনুগ্রহ করে একটি বাগ ফাইল করুন। - একটি নতুন শর্টকাট টীকা যোগ করা হয়েছে,
@Upsert
, যা একটি সত্তা সন্নিবেশ করার চেষ্টা করে যখন কোনো স্বতন্ত্রতার দ্বন্দ্ব থাকে না বা কোনো বিরোধ থাকলে সত্তা আপডেট করে। ( I7aaab , b/241964353 ) - রুম পেজিং-এ সহায়তার জন্য নতুন রুম-পেজিং আর্টিফ্যাক্ট
room-paging-rxjava2
,room-paging-rxjava3
এবংroom-paging-guava
যোগ করা হয়েছে। -
@MapInfo
( Icc4b5 ) এ দ্ব্যর্থতা নিরসন করার জন্য কী এবং মান টেবিলের নাম প্রদানের জন্য API যোগ করা হয়েছে
সংস্করণ 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 এই কমিট ধারণ করে।
এপিআই পরিবর্তন
- বিভিন্ন API গুলিকে ঠিক করুন যা জাভা-এর অ্যারে আচরণের সাথে মেলে invariant (
Array<Any?>
) থেকে contravariant (Array<out Any?>
) থেকে কোয়েরি আর্গুমেন্ট নেয়। ( b/253531073 )
সংস্করণ 2.5.0-beta01
5 অক্টোবর, 2022
androidx.room:room-*:2.5.0-beta01
প্রকাশিত হয়েছে। সংস্করণ 2.5.0-beta01-এ এই কমিট রয়েছে।
এপিআই পরিবর্তন
- API 16 হতে
@Upsert
সমর্থন করে এমন ন্যূনতম সংস্করণ সীমাবদ্ধ করুন। এটি পুরানো API-এ প্রাথমিক কী সীমাবদ্ধতা দ্বন্দ্ব সনাক্ত করতে অক্ষমতার কারণে। ( 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
নিক্ষেপ করবে। ( I328dd ) -
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
যোগ করা হয়েছে । )
এপিআই পরিবর্তন
- সমস্ত
room-runtime
জাভা থেকে কোটলিনে রূপান্তরিত হয়েছে। ( if2069 , b/206859668 ), ( Ie4b55 , b/206859668 ), ( I697ee , b/206859668 ), ( I96c25 , b/206859668 )দ্রষ্টব্য: আপনি কোটলিনে লাইব্রেরি রূপান্তরের কারণে উৎসের অসঙ্গতি সমস্যার সম্মুখীন হতে পারেন। যদি আপনার কোড কোটলিনে থাকে এবং রুমের পুরানো সংস্করণে কল করা হয়, তাহলে নতুন সংস্করণটিকে এই ক্ষেত্রেগুলি পরিচালনা করতে হবে। উদাহরণস্বরূপ, একটি পরিচিত উৎসের অসঙ্গতিপূর্ণ পরিবর্তন হল যে
InvalidationTracker
এ আপনাকে এখনObserver
-এonInvalidate()
ঘোষণা করতে হবে যাতেMutableSet
নয়,Set
টাইপের একটি প্যারাম থাকে। -
@MapInfo
( Icc4b5 ) এ দ্ব্যর্থতা নিরসন করার জন্য কী এবং মান টেবিলের নাম প্রদানের জন্য API যোগ করা হয়েছে - প্রপার্টি গেটারে
@Ignore
পুনরায় অনুমতি দেওয়ার জন্য সোর্স সামঞ্জস্যের সমস্যা সমাধান করুন। ( IFc2fb )
বাগ ফিক্স
- ডুপ্লিকেট কলাম রেজোলিউশন হিউরিস্টিক অ্যালগরিদম। রুম এখন একটি মাল্টিম্যাপ ক্যোয়ারীতে অস্পষ্ট কলামগুলি সমাধান করার চেষ্টা করবে। এটি একটি ফলাফল ডেটা অবজেক্টে সঠিকভাবে ম্যাপ করার জন্য একই-নাম টেবিলযুক্ত টেবিলের সাথে যোগদানের অনুমতি দেয়। ( I4b444 , b/201306012 , b/212279118 )
সংস্করণ 2.5.0-alpha01
23 ফেব্রুয়ারি, 2022
androidx.room:room-*:2.5.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 2.5.0-alpha01-এ এই কমিট রয়েছে।
এপিআই পরিবর্তন
- একটি সমস্যা সমাধান করা হয়েছে যেখানে রুম
@IntDef
ব্যবহার কোটলিন উত্সগুলিতে প্রয়োগ করা হচ্ছে না। ( I75f41 , b/217951311 ) - প্রপার্টি গেটারে
@Query
পুনরায় অনুমতি দেওয়ার জন্য একটি উৎস সামঞ্জস্যপূর্ণ সমস্যা সমাধান করা হয়েছে। ( I0a09b ) - জাভা থেকে কোটলিনে রূপান্তরিত রুম-সাধারণ। ( I69c48 , b/206858235 )
দ্রষ্টব্য: কোটলিনে লাইব্রেরি রূপান্তরের সময় কিছু বৈশিষ্ট্য সহচর বস্তুতে স্থানান্তরিত হওয়ার কারণে আপনি উত্সের অসঙ্গতি সমস্যাগুলির সম্মুখীন হতে পারেন৷ যদি আপনার কোডটি কোটলিনে থাকে এবং রুমের পুরানো সংস্করণে কল করা হয়, তাহলে এই বৈশিষ্ট্যগুলি অ্যাক্সেস করার সময় নতুন সংস্করণটির জন্য ".Companion" প্রত্যয় প্রয়োজন হবে৷
- জাভা থেকে কোটলিনে রূপান্তরিত রুম-মাইগ্রেশন। ( I2724b , b/206858622 )
- জাভা থেকে কোটলিনে
room-runtime
paging
সম্পর্কিত ফাইল রূপান্তরিত। ( I82fc8 , b/206859668 ) - মাল্টি-প্রসেস লক এবং ব্যবহারের জন্য FrameworkSQLite* স্তরে API যোগ করা হয়েছে, মাল্টি-প্রসেস 1ম বার ডাটাবেস তৈরি এবং স্থানান্তর রক্ষা করতে। ( 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 এই কমিট ধারণ করে.
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যার কারণে রুম কোটলিন 1.7 ( b/236612358 ) এ সাসপেন্ড ফাংশনগুলিকে চিনতে পারবে না
সংস্করণ 2.4.2
সংস্করণ 2.4.2
23 ফেব্রুয়ারি, 2022
androidx.room:room-*:2.4.2
প্রকাশিত হয়েছে। সংস্করণ 2.4.2-এ এই কমিট রয়েছে।
বাগ ফিক্স
-
-Xjvm-default=all
বা সমমানের সাথে সংকলনের কারণে একটি ডিফল্ট ইন্টারফেস পদ্ধতি তৈরি করে এমন একটি বডির সাথে একটি Dao@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 থেকে গুরুত্বপূর্ণ পরিবর্তন
- স্বয়ংক্রিয় স্থানান্তর : যতক্ষণ স্কিমা রপ্তানি করা হয় ততক্ষণ রুম স্বয়ংক্রিয়ভাবে মাইগ্রেশন তৈরি করার জন্য একটি API অফার করে৷ রুমকে জানাতে যে এটি একটি স্বয়ংক্রিয়-মাইগ্রেশন তৈরি করবে একটি নতুন সম্পত্তি
@Database#autoMigrations
ব্যবহার করা যেতে পারে থেকে এবং থেকে স্বয়ংক্রিয়ভাবে স্থানান্তরিত সংস্করণ ঘোষণা করতে। যখন ঘরের টেবিল এবং কলামের নাম পরিবর্তন বা মুছে ফেলার বিষয়ে অতিরিক্ত তথ্যের প্রয়োজন হয়, তখন@AutoMigration
টীকা এই ধরনের ইনপুট ধারণকারী একটি স্পেসিফিকেশন ক্লাস ঘোষণা করতে পারে। আরো বিস্তারিত জানার জন্য@AutoMigration
ডকুমেন্টেশন দেখুন। - অটো মাইগ্রেশনে ডিপেন্ডেন্সি ইনজেকশন :
@ProvidedAutoMigrationSpec
হল একটি নতুন এপিআই ঘোষণা করার জন্য যে একটিAutoMigrationSpec
রানটাইমেRoomDatabase.Builder#addAutoMigrationSpec()
মাধ্যমে প্রদান করা হবে। এটি একটি নির্ভরতা ইনজেকশন ফ্রেমওয়ার্কের জন্য অনুমতি দেয় যখন তাদের জটিল নির্ভরতার প্রয়োজন হয়। - অটো মাইগ্রেশনের জন্য মাইগ্রেশন টেস্ট হেল্পার সমর্থন : রুমের
MigrationTestHelper
একটি নতুন কনস্ট্রাক্টর API প্রদান করে স্বয়ংক্রিয় মাইগ্রেশন সমর্থন করার জন্য আপডেট করা হয়েছে যা পরীক্ষার অধীনে ডাটাবেস ক্লাস গ্রহণ করে। এটি সাহায্যকারীকেrunMigrationsAndValidate
সময় স্বয়ংক্রিয়ভাবে স্বয়ংক্রিয়ভাবে মাইগ্রেশন যোগ করতে দেয়। - রুম-পেজিং সাপোর্ট :
androidx.room:room-paging
প্রকাশ করা হয়েছে,androidx.paging.PagingSource
ফেরত রুম প্রশ্নের জন্য নেটিভ পেজিং 3.0 সমর্থন প্রদান করে। - রিলেশনাল ক্যোয়ারী মেথডস : রুম এখন মাল্টিম্যাপ রিটার্ন টাইপ
@Dao
পদ্ধতি সমর্থন করে, JoIN স্টেটমেন্টের জন্য উপযোগী। সমর্থিত প্রকারের মাল্টিম্যাপগুলি হ'লMap
,SparseArray
,LongSparseArray
, পাশাপাশি পেয়ারারImmutableMap
,ImmutableSetMultimap
এবংImmutableListMultimap
সহ।
সংস্করণ 2.4.0-আরসি 01
ডিসেম্বর 1, 2021
androidx.room:room-*:2.4.0-rc01
*:2.4.0-আরসি 01 প্রকাশিত হয়েছে। সংস্করণ 2.4.0-আরসি 01 এ এই কমিটগুলি রয়েছে।
নতুন বৈশিষ্ট্য
- কোটলিন 1.6 সমর্থন করতে কেএসপিতে
1.6.0-1.0.1
এ রুমের নির্ভরতা আপডেট করুন
সংস্করণ 2.4.0-BETA02
17 নভেম্বর, 2021
androidx.room:room-*:2.4.0-beta02
*:2.4.0-বিটা 02 প্রকাশিত হয়েছে। সংস্করণ 2.4.0-BETA02 এর মধ্যে এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
- আমরা @ম্যাপিনফোতে স্পারসারে এবং লংস্পারসেয়াররে সমর্থন যুক্ত করেছি। ( আইসি 91 এ 2 বি/138910317 )
বাগ ফিক্স
- আমরা একটি নতুন টাইপকনভার্টার বিশ্লেষক যুক্ত করেছি যা প্রকারগুলিতে নালিবিলিটি তথ্য গ্রহণ করে। যেহেতু এই তথ্যটি কেবল কেএসপিতে উপলব্ধ, এটি কেবল কেএসপিতে ডিফল্টরূপে চালু করা হয়। যদি এটি কোনও সমস্যার কারণ হয়ে থাকে তবে আপনি রুমটি পাস করে এটি বন্ধ করতে পারেন ususenulawaretypeanalysic = টীকা প্রসেসরের কাছে মিথ্যা। যদি এটি হয় তবে দয়া করে একটি ফাইল বাগ হিসাবে ভবিষ্যতে এই পতাকাটি সরানো হবে। এই নতুন টাইপকনভার্টার বিশ্লেষকের সাথে, এটি কেবলমাত্র নন-নাল প্রাপ্ত টাইপকনভার্টারগুলি সরবরাহ করার পরামর্শ দেওয়া হয়েছে কারণ নতুন বিশ্লেষক তাদের নাল চেক দিয়ে মোড়ানোর ক্ষমতা রাখে। মনে রাখবেন যে ক্যাপ্ট বা জাভা ব্যবহারকারীদের টীকা প্রসেসর হিসাবে (কেএসপির বিপরীতে) ব্যবহারকারীদের জন্য এটির কোনও প্রভাব নেই, প্রকারগুলিতে বাতিলতার তথ্য নেই। ( আইএ 88 এফ 9 , বি/193437407 )
- এমন একটি বাগ ঠিক করুন যেখানে কোনও এফটিএস সত্তা আইসিইউ টোকেনাইজার ব্যবহার করার ঘোষণা দিলে ঘরটি একটি এসকিউএল ত্রুটি দিয়ে সংকলন করতে ব্যর্থ হবে। ( I00DB9 , বি/201753224 )
- সংস্করণগুলির মধ্যে এম্বেড থাকা সত্তায় যুক্ত একটি নতুন কলাম সম্পর্কিত অটো মাইগ্রেশনগুলিতে সমাধান করা সমস্যা। ( আই 5 এফসিবি 1 বি/193798291 )
- আমরা বাম যোগদানের প্রশ্নের সাথে সম্পর্কিত ক্যোয়ারী পদ্ধতি রিটার্ন প্রকারগুলি সম্পর্কিত একটি সমস্যা সমাধান করেছি। এই পরিবর্তনগুলির সাথে, যেখানে 1-পুরুষের ম্যাপিং উপস্থিত রয়েছে, সেই ক্ষেত্রে সংগ্রহটি একটি কীটির জন্য ফিরে এসেছিল তা যদি কার্সারে না পাওয়া যায় তবে এটি অবৈধ মান অবজেক্টটি অন্তর্ভুক্ত করবে না। যদি কোনও বৈধ মান না পাওয়া যায়, তবে একটি কী খালি সংগ্রহে ম্যাপ করা হবে। ( ID5552 বি/201946438 )
- অটো মাইগ্রেশন ইস্যুটির সমাধান করেছেন যেখানে এসকিউএলাইট কীওয়ার্ডগুলি কলামের নামগুলিতে পালাতে ব্যর্থ হয়েছিল। ( আইডবেড 4 বি/197133152 )
সংস্করণ 2.4.0-BETA01
13 অক্টোবর, 2021
androidx.room:room-*:2.4.0-beta01
*:2.4.0-বিটা 01 প্রকাশিত হয়েছে। সংস্করণ 2.4.0-BETA01 এর মধ্যে এই কমিট রয়েছে।
বাগ ফিক্স
- একই অটো-মাইগ্রেশনে অন্য টেবিলেরও একই নামের সাথে একটি নতুন কলাম থাকলে অটো-মাইগ্রেশনগুলি নতুন কলাম যুক্ত না করে একটি সমস্যা স্থির করে। ( আইএ 5 ডিবি 5 , বি/200818663 )
- রুম-পেজিং দ্বারা উত্পাদিত প্যাগিংসোর্স বাস্তবায়ন এখন
RoomDatabase.Builder
মাধ্যমে পাস করাqueryExecutor
ব্যবহার করে, সুতরাং এটি আগেDispatchers.IO
পরিবর্তে ওভাররাইড করা যায়। ( আইএই 259 )
সংস্করণ 2.4.0-আলফা 05
29 সেপ্টেম্বর, 2021
androidx.room:room-*:2.4.0-alpha05
*:2.4.0-আলফা 05 প্রকাশিত হয়েছে। সংস্করণ 2.4.0-ALPHA05 এর মধ্যে এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
- ইউইডের জন্য একটি বিল্ট-ইন টাইপ রূপান্তরকারী যুক্ত করা হয়েছে। ( I671e8 , খ/73132006 )
এপিআই পরিবর্তন
বিকাশকারীদের অন্তর্নির্মিত এনাম এবং ইউইউআইডি রূপান্তরকারীগুলি অক্ষম করতে টাইপকনভার্টার টীকাগুলিতে একটি নতুন সম্পত্তি যুক্ত করেছে। ডিফল্টরূপে, এই রূপান্তরকারীগুলি চালু রয়েছে তবে আপনি এগুলি একটি নির্দিষ্ট সুযোগের জন্য বা পুরো ডাটাবেসের জন্য অক্ষম করতে পারেন। বিশদের জন্য টাইপকনভার্টার ডকুমেন্টেশন দেখুন। ( 36ae9e , বি/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>
- রুমের সাথে পেজিং 3 ব্যবহার করার সময়
room-paging
প্রয়োজনীয় নিদর্শন তৈরি করুন। ( আইএএফএফ )
বাগ ফিক্স
- এমন একটি সমস্যা সমাধান করুন যেখানে মাল্টিম্যাপ প্রশ্নের ফলাফলগুলি সঠিকভাবে অর্ডার করা হয়নি যখন ক্যোয়ারিতে মানচিত্রের কী থেকে একটি কলামের ধারা দ্বারা একটি অর্ডার থাকে। ( I6b887 )
বাহ্যিক অবদান
- @ইন্ডেক্সে সূচক অর্ডার নির্দিষ্ট করতে নতুন এপিআই যুক্ত করা হয়েছে। নিকিতা ঝেলোনকিনকে ধন্যবাদ। ( I033fc )
সংস্করণ 2.4.0-আলফা 04
জুলাই 21, 2021
androidx.room:room-*:2.4.0-alpha04
*:2.4.0-আলফা 04 প্রকাশিত হয়েছে। সংস্করণ 2.4.0-ALPHA04 এর মধ্যে এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
রুম এখন মাল্টিম্যাপ রিটার্ন প্রকারগুলি
@Dao
পদ্ধতিগুলি সমর্থন করে, যোগদানের বিবৃতিগুলির জন্য দরকারী। সমর্থিত প্রকারের মাল্টিম্যাপগুলি হ'ল পিওভা'র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
, আরএক্সেরObservable
বা করুটাইনFlow
আবৃত হতে পারে।
রুম-পেজিং
androidx.room:room-paging
-পেজিং প্রকাশিত হয়েছে,androidx.paging.PagingSource
ফিরে আসা রুম ক্যোয়ারীগুলির জন্য নেটিভ পেজিং 3.0 সমর্থন সরবরাহ করে।@Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }
এই নিদর্শনটি
androidx.paging.PagingSource
বাস্তবায়নকে পেজিং 3.0 এপিআইয়ের শীর্ষে নির্মিত একটি ঘর দ্বারা উত্পন্ন করে। নতুন প্যাগিংসোর্স বাস্তবায়ন কীগুলি আলাদাভাবে পার্স করে, তাই ঘরের প্যাগিংসোর্সকে ম্যানুয়ালি সরবরাহ করা যে কোনও কী প্যাগারের কনস্ট্রাক্টরের মাধ্যমে পাস করা প্রাথমিক কী সহ এই আচরণ পরিবর্তনের জন্য অ্যাকাউন্ট করতে হবে। পৃষ্ঠাগুলিKey
থেকে প্রথম লোড হওয়া আইটেম হিসাবেKey
থেকে লোড করা শুরু করবে। এটি বিদ্যমান আচরণ থেকে বিচ্যুত হয় যেখানেLoadParams.Refresh.Key
।আর্টিক্টটি al চ্ছিক এবং বেছে নেওয়া পেজিং 3.0 এর বিদ্যমান সমর্থনে ফ্যালব্যাক করবে যা ২.৩ কক্ষের মধ্যে প্রবর্তিত হয়েছিল। যাইহোক, এই নিদর্শনটি ভবিষ্যতে পেজিং 3.0 এর সাথে রুম ব্যবহারকারীদের জন্য মুক্তির ক্ষেত্রে অ-নির্বাচনমূলক হয়ে উঠবে। অপ্ট-ইন করতে, আপনার ক্লাসপথে নতুন রুম-পেজিং আর্টিফ্যাক্ট যুক্ত করুন। আপনি যদি গ্রেডল ব্যবহার করছেন তবে আপনি আপনার বিল্ডে নিম্নলিখিত স্নিপেট যুক্ত করতে পারেন grad
dependency { implementation("androidx.room:room-paging:2.4.0-alpha04") }
বাগ ফিক্স
- বিদেশী কী লঙ্ঘন পরিচালনার বিষয়ে অটো মাইগ্রেশনে একটি সমস্যা সমাধান করুন। ( বি/190113935 )
সংস্করণ 2.4.0-আলফা 03
16 জুন, 2021
androidx.room:room-*:2.4.0-alpha03
-*:2.4.0-ALPHA03 প্রকাশিত হয়েছে। সংস্করণ 2.4.0-ALPHA03 এ এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
- পরীক্ষার অধীনে ডাটাবেস শ্রেণি গ্রহণ করে এমন একটি নতুন কনস্ট্রাক্টর এপিআই সরবরাহ করে অটো মাইগ্রেশনগুলিকে সমর্থন করার জন্য কক্ষের
MigrationTestHelper
আপডেট করুন। এটি হেল্পারকেrunMigrationsAndValidate
সময় স্বয়ংক্রিয়ভাবে অটো মাইগ্রেশনগুলি একইভাবে যুক্ত করতে দেয়।
বাগ ফিক্স
অ্যাপলের এম 1 চিপগুলি সমর্থন করার জন্য কক্ষের এসকিউএলাইট নেটিভ লাইব্রেরির সাথে একটি সমস্যা স্থির করেছে। ( বি/174695268
এমন একটি সমস্যা স্থির করা হয়েছে যেখানে @ট্রান্সশন ফাংশনের রিটার্ন প্রকারটি যখন প্রবাহ ছিল তখন রুমটি ত্রুটিযুক্ত হবে না ( i56ddd , বি/190075899 )
সূচকগুলি সম্পর্কিত অটো মাইগ্রেশনে একটি সমস্যা সমাধান করুন। বি/177673291
নির্ভরতা আপডেট
- কক্ষের কেএসপি সমর্থন এখন কেএসপি
1.5.10-1.0.0-beta01
উপর নির্ভর করে। ( 1ECB11 , খ/160322705 )
সংস্করণ 2.4.0-আলফা 02
5 মে, 2021
androidx.room:room-*:2.4.0-alpha02
*:2.4.0-আলফা 02 প্রকাশিত হয়েছে। সংস্করণ 2.4.0-ALPHA02 এ এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
-
@ProvidedAutoMigrationSpec
হ'ল একটি নতুন এপিআই যা ঘোষণা করার জন্য যে একটিAutoMigrationSpec
RoomDatabase.Builder#addAutoMigrationSpec()
মাধ্যমে রানটাইমে সরবরাহ করা হবে। এটি নির্ভরতা ইনজেকশন কাঠামোর জন্য এই জাতীয় চশমা সরবরাহ করার অনুমতি দেয় যখন তাদের জটিল নির্ভরতা প্রয়োজন।
বাগ ফিক্স
- অটো মাইগ্রেশনগুলির সাথে একটি সমস্যা সমাধান করুন যেখানে
@DatabaseView
s যেখানে সঠিকভাবে পুনরায় তৈরি করা হচ্ছে না।
বাহ্যিক অবদান
- ঘরের
JournalMode.TRUNCATE
কোনওInvalidationTracker
সমাধান করুন runUli Bubenheimer | bubenheimer@users.noreply.github.com
( খ/154040286 )
সংস্করণ 2.4.0-আলফা 01
21 এপ্রিল, 2021
androidx.room:room-*:2.4.0-alpha01
-*:2.4.0-ALPHA01 প্রকাশিত হয়েছে। সংস্করণ 2.4.0-ALPHA01 এর মধ্যে এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
- অটো মাইগ্রেশনস : স্কিমাস রফতানি হওয়া পর্যন্ত রুম এখন স্বয়ংক্রিয়ভাবে মাইগ্রেশন উত্পন্ন করার জন্য একটি এপিআই সরবরাহ করে। রুমটি জানতে দিন যে এটি একটি অটো-মাইগ্রেশন তৈরি করা উচিত একটি নতুন সম্পত্তি
@Database#autoMigrations
থেকে এবং থেকে অটো-মাইগ্রেট করার জন্য সংস্করণগুলি ঘোষণা করতে ব্যবহার করা যেতে পারে। যখন ঘরে টেবিল এবং কলামের নামকরণ বা মুছে ফেলা সম্পর্কিত অতিরিক্ত তথ্যের প্রয়োজন হয়, তখন@AutoMigration
অ্যাটোমিগ্রেশন টীকাগুলি এই জাতীয় ইনপুটযুক্ত একটি স্পেসিফিকেশন ক্লাস ঘোষণা করতে পারে। আরও তথ্যের জন্য@AutoMigration
ডকুমেন্টেশন দেখুন।
বাগ ফিক্স
- এমন একটি সমস্যা সমাধান করুন যেখানে অতিরিক্ত বন্ধনী সহ
defaultValue
রুমের স্কিমা বৈধতা দ্বারা ভুলভাবে বৈধ করা হচ্ছে। বি/182284899
সংস্করণ 2.3.0
সংস্করণ 2.3.0
21 এপ্রিল, 2021
androidx.room:room-*:2.3.0
*:2.3.0 প্রকাশিত হয়েছে। সংস্করণ 2.3.0 এ এই কমিটস রয়েছে।
2.2.0 সাল থেকে গুরুত্বপূর্ণ পরিবর্তন
- অন্তর্নির্মিত এনাম সাপোর্ট : রুমটি এখন কোনও এনামকে স্ট্রিং ব্যবহার করে ডিফল্ট করবে এবং যদি কোনও সরবরাহ না করা হয় তবে তদ্বিপরীত টাইপ রূপান্তরকারী। যদি কোনও এনামের জন্য কোনও টাইপ কনভার্টর ইতিমধ্যে বিদ্যমান থাকে তবে ঘরটি এটি ডিফল্টর থেকে ব্যবহার করে অগ্রাধিকার দেবে।
- ক্যোয়ারী কলব্যাক : রুম এখন একটি সাধারণ কলব্যাক এপিআই রুমডাটাবেস.কুইরিক্যালব্যাক সরবরাহ করে, যখন ক্যোয়ারীগুলি কার্যকর করতে চলেছে, যা ডিবাগ বিল্ডগুলিতে লগিংয়ের জন্য কার্যকর হতে পারে। কলব্যাকটি
RoomDatabase.Builder#setQueryCallback()
এর মাধ্যমে সেট করা যেতে পারে। - প্রাক-প্যাকেজযুক্ত উন্নতি : রুমে এখন একটি ইনপুট স্ট্রিম থেকে পড়া প্রাক-প্যাকেজড ডাটাবেস ব্যবহার করে একটি ডাটাবেস তৈরি করার জন্য এপিআই রয়েছে। এটি যখন প্রাক-প্যাকেজ ডাটাবেস জিজিপড থাকে তখন এমন কেসগুলির জন্য অনুমতি দেয়।
- সরবরাহিত প্রকারের রূপান্তরকারী : রুমে এখন টাইপ কনভার্টারের উদাহরণ সরবরাহ করার জন্য এপিআই রয়েছে যাতে অ্যাপটি তাদের সূচনা নিয়ন্ত্রণ করতে পারে। রুমে সরবরাহ করা হবে এমন একটি টাইপ কনভার্টার চিহ্নিত করতে নতুন টীকাটি @প্রোভাইড টাইপকনভার্টার ব্যবহার করুন।
- Rxjava3 সমর্থন : কক্ষ এখন rxjava3 প্রকার সমর্থন করে। আরএক্সজেভিএ 2 এর অনুরূপ আপনি ডিএও পদ্ধতিগুলি ঘোষণা করতে পারেন যার রিটার্ন টাইপ প্রবাহিত, একক, সম্ভবত এবং সম্পূর্ণযোগ্য। অতিরিক্তভাবে একটি নতুন আর্টিক্ট
androidx.room:room-rxjava3
-আরএক্সজ্যাভিএ 3 আরএক্সজ্যাভিএ 3 সমর্থন করার জন্য উপলব্ধ। - পেজিং 3.0 সমর্থন : কক্ষটি এখন
@Query
টীকাযুক্ত পদ্ধতিগুলির জন্য উত্পন্ন বাস্তবায়নগুলিকে সমর্থন করবে যার রিটার্ন টাইপandroidx.paging.PagingSource
।
সংস্করণ 2.3.0-আরসি 01
24 মার্চ, 2021
androidx.room:room-*:2.3.0-rc01
*:2.3.0-আরসি 01 প্রকাশিত হয়েছে। সংস্করণ 2.3.0-আরসি 01 এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
- এমন একটি সমস্যা সমাধান করুন যা কক্ষ দ্বারা তৈরি করা করুটাইন ফ্লো কোয়েরিগুলিকে সাসপেন্ডিং
withTransaction
ব্লকে গ্রাস করতে বাধা দেয়। ( I797bf )
সংস্করণ 2.3.0-BETA03
10 মার্চ, 2021
androidx.room:room-*:2.3.0-beta03
*:2.3.0-বিটা 03 প্রকাশিত হয়েছে। সংস্করণ 2.3.0-BETA03 এ এই কমিটগুলি রয়েছে।
নতুন বৈশিষ্ট্য
- কেএসপির জন্য ইনক্রিমেন্টাল সংকলন সমর্থন যুক্ত করা হয়েছে। ( I031c1 , খ/176453350 )
বাগ ফিক্স
- একটি বাগ স্থির করে যেখানে মূল থ্রেডে প্যাগিংসোর্স তৈরি করা একটি এএনআরকে ট্রিগার করতে পারে। ( আই 42 বি 74 , বি/181221318 )
- প্যাকেজ ব্যক্তিগত পরিবর্তে সর্বজনীন হতে
@ExperimentalRoomApi
দৃশ্যমানতা স্থির করুন। ( বি/181356119 )
বাহ্যিক অবদান
-
@SkipQueryVerification
দিয়ে টীকাগুলিও যখন কোনও@Query
টীকাযুক্ত ডিএও পদ্ধতিতে কোনও পোজো রিটার্ন টাইপ গ্রহণ করার জন্য রুমকে অনুমতি দিন। ক্যোয়ারির ফলাফলটিকে পমানো রিটার্ন টাইপের সাথে রূপান্তর করতে রুম একটি সেরা-প্রচেষ্টা করবে একইভাবে এটি@RawQuery
টীকাযুক্ত ডিএও পদ্ধতির জন্য করা হয়েছে। 'মার্কাস রিগেলকে ধন্যবাদ He@marcorei.com '। ( I45acb )
সংস্করণ 2.3.0-BETA02
18 ফেব্রুয়ারি, 2021
androidx.room:room-*:2.3.0-beta02
*:2.3.0-বিটা 02 প্রকাশিত হয়েছে। সংস্করণ 2.3.0-BETA02 এর মধ্যে এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
কোটলিন প্রতীক প্রসেসিং কেএসপি -র জন্য এখন কক্ষে পরীক্ষামূলক সমর্থন রয়েছে।
কেএসপি হ'ল ক্যাটলিন সংকলকটিতে স্থানীয়ভাবে টীকাগুলি প্রসেসর চালানোর জন্য কেএপিটি -র প্রতিস্থাপন, বিল্ড টাইমসকে উল্লেখযোগ্যভাবে হ্রাস করে।
কেএসপি সহ রুম ব্যবহার করতে, আপনি কেএসপি গ্রেডল প্লাগইন প্রয়োগ করতে পারেন এবং
ksp
দিয়ে আপনার বিল্ড ফাইলেkapt
কনফিগারেশনটি প্রতিস্থাপন করতে পারেন। উদাহরণস্বরূপ,kapt 'androidx.room:room-compiler:2.3.0-beta02'
ksp 'androidx.room:room-compiler:2.3.0-beta02'
এর পরিবর্তে। আরও তথ্যের জন্য কেএসপি ডকুমেন্টেশন দেখুন।নোট করুন যেহেতু কেএসপি পরীক্ষামূলক, তাই এখনও উত্পাদন কোডের জন্য কেএপিটি ব্যবহার করার পরামর্শ দেওয়া হয়। বিল্ড টাইমস হ্রাস কেবল তখনই প্রযোজ্য যদি ক্যাপ্ট ব্যবহার করে এমন কোনও প্রসেসর না থাকে। পরিচিত সমস্যাগুলির জন্য বি/160322705 দেখুন।
সংস্করণ 2.3.0-BETA01
জানুয়ারী 27, 2021
androidx.room:room-*:2.3.0-beta01
*:2.3.0-বিটা 01 প্রকাশিত হয়েছে। সংস্করণ 2.3.0-BETA01 এর মধ্যে এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
- অটো ক্লোজেবল ডাটাবেস : রুমে এখন ডেটাবেসগুলি বন্ধ করার ক্ষমতা রয়েছে যা নির্দিষ্ট সময়ের পরে অ্যাক্সেস করা হয় না। এটি একটি পরীক্ষামূলক বৈশিষ্ট্য এবং
RoomDatabase.Builder#setAutoCloseTimeout()
কল করে সক্ষম করা যেতে পারে। এই বৈশিষ্ট্যটি একাধিক ডাটাবেস সহ অ্যাপ্লিকেশনগুলির জন্য দরকারী।
বাগ ফিক্স
- এমন একটি সমস্যা সমাধান করুন যেখানে একাধিক
@Update
বা@Delete
পদ্ধতিগুলি বিভিন্ন সংঘাতের কৌশলগুলির সাথে ডিএও পদ্ধতিগুলি কেবলমাত্র একটি কৌশল সহ কোড তৈরি করবে, কার্যকরভাবে সংজ্ঞায়িত একটিকে উপেক্ষা করে। ( /I0b90d , খ /176138543 )
সংস্করণ 2.3.0-আলফা 04
16 ডিসেম্বর, 2020
androidx.room:room-*:2.3.0-alpha04
-*:2.3.0-ALPHA04 প্রকাশিত হয়েছে। সংস্করণ 2.3.0-ALPHA04 এর মধ্যে এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
- রুম এখন একটি সাধারণ কলব্যাক এপিআই
RoomDatabase.QueryCallback
সরবরাহ করে, যখন ক্যোয়ারীগুলি কার্যকর করতে চলেছে, যা ডিবাগ বিল্ডগুলিতে লগিংয়ের জন্য কার্যকর হতে পারে। কলব্যাকটিRoomDatabase.Builder#setQueryCallback()
এর মাধ্যমে সেট করা যেতে পারে। ( আইএএ 513 , বি/174478034 , বি/74877608 ) - ঘরটি এখন কোনও এনাম থেকে স্ট্রিং ব্যবহার করে ডিফল্ট হবে এবং যদি কোনও সরবরাহ না করা হয় তবে তদ্বিপরীত টাইপ রূপান্তরকারী। যদি কোনও এনামের জন্য কোনও টাইপ কনভার্টর ইতিমধ্যে বিদ্যমান থাকে তবে ঘরটি এটি ডিফল্টর থেকে ব্যবহার করে অগ্রাধিকার দেবে। ( খ/73132006 )
পরিচিত সমস্যা
- যদি এনামের জন্য ইতিমধ্যে পড়ার জন্য একমুখী টাইপ রূপান্তরকারী উপস্থিত থাকে তবে ঘরটি দুর্ঘটনাক্রমে অন্তর্নির্মিত স্ট্রিংটি এনাম কনভার্টারে ব্যবহার করতে পারে যা পছন্দসই নাও হতে পারে। এটি একটি পরিচিত সমস্যা এবং এটিকে দ্বি-মুখী রূপান্তরকারী করে ঠিক করা যেতে পারে। দেখুন: বি/175707691
বাগ ফিক্স
- এমন একটি সমস্যা স্থির করা হয়েছে যেখানে ঘরটি নতুন জেডিকে সংস্করণগুলিতে ভুলভাবে ইনক্রিমেন্টাল টীকা প্রক্রিয়াকরণ অক্ষম করবে। ( বি/171387388 )
- একাধিক শ্রেণির লোডার ব্যবহার করা হলে উত্পন্ন শ্রেণীর সন্ধানের জন্য রুমের সাথে একটি সমস্যা স্থির করে। ফিক্সের জন্য ধন্যবাদ 'serendipity | 892449346@qq.com '! ( বি/170141113 )
- এমন একটি সমস্যা স্থির করে যেখানে কক্ষটি ভুল কোড তৈরি করবে যখন কোনও কোটলিন
@Dao
একটি বেস শ্রেণি ছিল যার জেনেরিকগুলি জেভিএম -এ আদিম। ( বি/160258066 )
বাহ্যিক অবদান
- ওয়াল মোড সক্ষম করা থাকলে এবং এপিআই 16 বা ততোধিক হয় তবে কক্ষটি এখন
beginTransactionNonExclusive
ব্যবহারে ডিফল্ট হবে। ধন্যবাদ 'আহমেদ আই খলিল | আহমেদিব্রাহিমখালি@gmail.com '! ( বি/126258791 )
সংস্করণ 2.3.0-আলফা 03
অক্টোবর 14, 2020
androidx.room:room-*:2.3.0-alpha03
-*:2.3.0-ALPHA03 প্রকাশিত হয়েছে। সংস্করণ 2.3.0-ALPHA03 এ এই কমিটগুলি রয়েছে।
নতুন বৈশিষ্ট্য
রুমে এখন টাইপ কনভার্টারের উদাহরণ সরবরাহ করার জন্য এপিআই রয়েছে যাতে অ্যাপটি তাদের সূচনা নিয়ন্ত্রণ করতে পারে। রুমে সরবরাহ করা হবে এমন একটি টাইপ কনভার্টার চিহ্নিত করতে নতুন টীকাটি
@ProvidedTypeConverter
ব্যবহার করুন। 'Mzgreen yaiarobbe@gmail.com ' কে ধন্যবাদ। ( Ie4fa5 , খ/121067210 )ঘরে এখন একটি ইনপুট স্ট্রিম থেকে পড়া প্রাক-প্যাকেজড ডাটাবেস ব্যবহার করে একটি ডাটাবেস তৈরি করার জন্য এপিআই রয়েছে। এটি যখন প্রাক-প্যাকেজ ডাটাবেস জিজিপড থাকে তখন এমন কেসগুলির জন্য অনুমতি দেয়। 'আহমেদ এল-হেলউ আহমেড্রে@gmail.com ' ( 3E6792 , বি/146911060 ) ধন্যবাদ
এপিআই পরিবর্তন
@ForeignKey
টীকাগুলিতে@Entity
টীকেশনের বাইরে এর ব্যবহার রোধ করে অনুপস্থিত লক্ষ্য যুক্ত করা হয়েছে। ( আইসড 1 ই )RoomDatabase.java
মাঠেরmCallbacks
এখন লুকানো আছে। ( D576CB , খ/76109329 )
বাগ ফিক্স
টাইপকনভার্টার ডকুমেন্টেশনে আপডেট করুন যে টাইপকনভার্টারগুলি কেবল কলাম / ক্ষেত্রগুলি রূপান্তর করতে ব্যবহার করা যেতে পারে এবং সারিগুলি নয়। ( I07c56 , বি/77307836 )
কোটলিন "আদিম" সহ জেনেরিক সুপার টাইপের সাথে ডিএওতে সংকলক ত্রুটি ঠিক করতে ডিএওপ্রসেসরকে আপডেট করুন। ( আইস 6 বিবি , বি/160258066 )
থ্রেডিং স্পষ্ট করতে ( আইএফডি 1 ডি 9 , বি/153948821 ) স্পষ্ট করতে পর্যবেক্ষক পদ্ধতিগুলি ডকুমেন্টেশন যুক্ত/সরান আপডেট আপডেট করুন
রুমের সাথে কোনও সমস্যা ভুলভাবে এফটিএস টেবিলগুলি যাচাই করে যা তাদের রোইড কলামটি ঘোষণা করে। ( d62ebc , খ/145858914 )
বাহ্যিক অবদান
তুর্কি ( 5746e3 ) সম্পর্কিত উপরের/ছোট হাতের লোকেল সমস্যাগুলি ঠিক করুন, বি/68159494
অ্যান্ড্রয়েড ললিপপ ( ডি 1 সিএফসি 7 , বি/162431855 ) এর সমস্যাগুলি এড়াতে
Collections.synchronizedMap()
সাথেRoomDatabase
অভ্যন্তরেConcurrentHashMap
প্রতিস্থাপন করুনযখন কোনও প্রিপেইকেজড ডিবি অনুলিপি করা হয় তার জন্য একটি অনোপেনপ্রেপ্যাকেজডড্যাটাবেস কলব্যাক যুক্ত করুন। ( আই 1 বিএ 74 , বি/148934423 )
সংস্করণ 2.3.0-আলফা 02
22 জুলাই, 2020
androidx.room:room-*:2.3.0-alpha02
*:2.3.0-আলফা 02 প্রকাশিত হয়েছে। সংস্করণ 2.3.0-ALPHA02 এর মধ্যে এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
- Rxjava3 সমর্থন : কক্ষ এখন rxjava3 প্রকার সমর্থন করে। আরএক্সজেভিএ 2 এর অনুরূপ আপনি ডিএও পদ্ধতিগুলি ঘোষণা করতে পারেন যার রিটার্ন টাইপ প্রবাহিত, একক, সম্ভবত এবং সম্পূর্ণযোগ্য। অতিরিক্তভাবে একটি নতুন আর্টিক্ট
androidx.room:room-rxjava3
-আরএক্সজ্যাভিএ 3 আরএক্সজ্যাভিএ 3 সমর্থন করার জন্য উপলব্ধ। ( খ/152427884 )
এপিআই পরিবর্তন
- কোটলিন অবজেক্ট ক্লাসে একটি
@TypeConverter
ঘোষণা করা এখন সমর্থিত। ( খ/151110764 ) -
Room
ইনক্রিমেন্টাল টীকা প্রক্রিয়াকরণ বিকল্পটি এখন ডিফল্টরূপে চালু রয়েছে। ( খ/112110217 )
সংস্করণ 2.3.0-Alpha01
জুন 10, 2020
androidx.room:room-*:2.3.0-alpha01
-*: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
কলাম কনফ্লিক্ট সলিউশনroom.expandProjection
প্রতিস্থাপন করে না@Embedded
ক্ষেত্রগুলি থাকা প্রকারগুলি ফিরিয়ে দেওয়ার জন্য অফারডপ্রজেকশন অফার করা হয়েছে।
বাগ ফিক্স
- একটি বাগ স্থির করে যেখানে ঘরটি ইনক্রিমেন্টাল টীকাগুলি প্রসেসর সক্ষম করতে ব্যবহৃত জেডিকে সংস্করণটি সঠিকভাবে সনাক্ত করতে পারে না। ব্লাজ সৌর (me@blaz.solar) ( খ/155215201 ) ধন্যবাদ
- কক্ষটি এখন এন্টএলআর ব্যবহার করে এমন অন্যান্য প্রসেসরগুলির সাথে সংস্করণ দ্বন্দ্ব এড়াতে টীকা প্রসেসরের সাথে তার এন্টএলআর নির্ভরতা এম্বেড করে। ( খ/150106190 )
সংস্করণ 2.2.6
সংস্করণ 2.2.6
16 ডিসেম্বর, 2020
androidx.room:room-*:2.2.6
*:2.2.6 প্রকাশিত হয়েছে। সংস্করণ 2.2.6 এর মধ্যে এই কমিটগুলি রয়েছে।
বাগ ফিক্স
- এমন একটি সমস্যা স্থির করা হয়েছে যেখানে ঘরটি নতুন জেডিকে সংস্করণগুলিতে ভুলভাবে ইনক্রিমেন্টাল টীকা প্রক্রিয়াকরণ অক্ষম করবে। ( বি/171387388 )
সংস্করণ 2.2.5
সংস্করণ 2.2.5
18 মার্চ, 2020
androidx.room:room-*:2.2.5
*:2.2.5 প্রকাশিত হয়েছে। সংস্করণ ২.২.৫ এর মধ্যে এই কমিট রয়েছে।
বাগ ফিক্স
-
MultiInstanceInvalidationService
ডাইরেক্টবুটওয়্যার করুন। 'Mygod যোগাযোগ-git@mygod.be ' ( বি/148240967 ) ধন্যবাদ - মাল্টি-ইনস্ট্যান্স অবৈধকরণ সক্ষম করা হলে এবং ডাটাবেসে একটি এফটিএস সত্তা থাকে যখন একটি ক্র্যাশ ঘটায় এমন একটি বাগ স্থির করে। ( খ/148969394 )
- রুম টীকাগুলি প্রসেসরে এসকিউএলাইট নেটিভ লাইব্রেরিগুলি লোড করার সময় একটি সমস্যা স্থির করে যা সমান্তরাল সংকলনের কারণে সংকলককে ক্র্যাশ করতে পারে। ( বি/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-migration:2.2.4
androidx.room:room-ktx:2.2.4
-কনপিলার androidx.room:room-runtime:2.2.4
২২.৪, androidx.room:room-rxjava2:2.2.4
আরএক্সজ্যাভিএ 2:2.2.4, এবং androidx.room:room-testing:2.2.4
-টেস্টিং:2.2.4 প্রকাশিত হয়েছে। সংস্করণ 2.2.4 এ এই কমিটস রয়েছে।
বাগ ফিক্স
- লেনদেন শুরু হওয়ার আগে যদি করটিনটি দ্রুত বাতিল করা হয় তবে তারা অচল হয়ে পড়বে যেখানে স্থগিত লেনদেনগুলির সাথে একটি সমস্যা স্থির করে। ( বি/148181325 )
- জেডিকে 9 দিয়ে নির্মাণের সময় @জেনারেটেড ভুলভাবে ব্যবহৃত হওয়ার সাথে একটি সমস্যা স্থির করেছে ( বি/146538330 )
- কোটলিনে ডিএও ইন্টারফেসের একটি কংক্রিট ফাংশন থাকলে ঘরটি ভুল কোড তৈরি করতে পারে এমন একটি সমস্যা স্থির করে। ( খ/146825845 )
সংস্করণ 2.2.3
সংস্করণ 2.2.3
18 ডিসেম্বর, 2019
androidx.room:room-*:2.2.3
*:2.2.3 প্রকাশিত হয়েছে। সংস্করণ 2.2.3 এ এই কমিটস রয়েছে ।
বাগ ফিক্স
- এমন একটি বাগ ঠিক করা হয়েছে যেখানে ঘরটি এমন কোনও ডাটাবেস যাচাই করতে ব্যর্থ হবে যা কোনও মাইগ্রেশনের মধ্য দিয়ে যায়নি এবং এর স্কিমাতে সূচকগুলি সহ একটি উত্তরাধিকার হ্যাশ ধারণ করে। ( খ/139306173 )
সংস্করণ 2.2.2
সংস্করণ 2.2.2
নভেম্বর 20, 2019
androidx.room:room-*:2.2.2
*:2.2.2 প্রকাশিত হয়েছে। সংস্করণ ২.২.২ এ এই কমিটস রয়েছে ।
বাগ ফিক্স
- একটি বাগ ঠিক করা হয়েছে যেখানে 999 টিরও বেশি সারিগুলির সাথে এক থেকে একের সম্পর্ক সংগ্রহ করার ফলে কক্ষটি নাল সম্পর্কিত আইটেমগুলি ফিরিয়ে আনবে। ( খ/143105450 )
সংস্করণ 2.2.1
সংস্করণ 2.2.1
23 অক্টোবর, 2019
androidx.room:room-*:2.2.1
*:2.2.1 প্রকাশিত হয়েছে। সংস্করণ 2.2.1 এ এই কমিটস রয়েছে ।
বাগ ফিক্স
- একটি বাগ স্থির করে যেখানে ঘরটি সংকলক বিকল্পটি
expandProjection
চালু করেCURSOR_MISMATCH
সম্পর্কে ভুলভাবে সতর্ক করবে। ( বি/140759491 ) - সংকলনের সময় কোয়েরিগুলি যাচাই করার জন্য ব্যবহৃত অনুপস্থিত নেটিভ লাইব্রেরি পরিচালনার জন্য একটি পুনরায় চেষ্টা প্রক্রিয়া যুক্ত করা হয়েছে।
সংস্করণ 2.2.0
সংস্করণ 2.2.0
9 অক্টোবর, 2019
androidx.room:room-*:2.2.0
*:2.2.0 প্রকাশিত হয়েছে। সংস্করণ 2.2.0 এ এই কমিটস রয়েছে ।
সংস্করণ 2.1.0 থেকে গুরুত্বপূর্ণ পরিবর্তন
- প্রাক-প্যাকেজড ডাটাবেস :
RoomDatabase.Builder
এ দুটি নতুন এপিআই এখন ইতিমধ্যে জনবহুল ডাটাবেস ফাইল প্রদত্ত একটিRoomDatabase
তৈরির জন্য উপলব্ধ।createFromAsset()
এর জন্য হয় যখন প্রাক-জনবহুল ডাটাবেস ফাইলটি এপির সম্পদ ফোল্ডারে থাকে, যখনcreateFromFile()
যখন ফাইলটি স্বেচ্ছাসেবী স্থানে থাকে তখন হয়। এই এপিআইয়ের ব্যবহারগুলি ধ্বংসাত্মক মাইগ্রেশনের আচরণকে পরিবর্তন করে যেমন ফ্যালব্যাক মাইগ্রেশনের সময়, ঘরটি যদি উপলভ্য হয় তবে প্রাক-জনবহুল ডাটাবেসটি পুনরায় কপি করার চেষ্টা করবে, অন্যথায় এটি কেবল সমস্ত টেবিলগুলি বাদ দেওয়া এবং পুনরায় তৈরি করার জন্য ফলব্যাক করে। বি/62185732 - স্কিমা ডিফল্ট মান :
@ColumnInfo
এখন একটি নতুন সম্পত্তিdefaultValue
রয়েছে যা একটি কলামের ডিফল্ট মান নির্দিষ্ট করতে ব্যবহার করা যেতে পারে। ডিফল্ট মানগুলি একটি ডাটাবেস স্কিমার অংশ এবং নির্দিষ্ট করা হলে মাইগ্রেশন চলাকালীন বৈধ করা হবে। বি/64088772 - বহু থেকে বহু সম্পর্ক :
@Relation
রিলেশনে এখন একটি নতুন সম্পত্তিassociateBy
রয়েছে, এটি একটি নতুন টীকা@Junction
নেয়, এমন একটি সম্পর্ক ঘোষণা করতে ব্যবহৃত হয় যা একটি জংশন টেবিলের মাধ্যমে সন্তুষ্ট হওয়া দরকার (এটি একটি যোগদানের টেবিল হিসাবেও পরিচিত)। বি/69201917 - এক-এক-একের সম্পর্ক :
@Relation
দিয়ে টাইপেরList
বাSet
হওয়ার সাথে টীকাযুক্ত পোজো ক্ষেত্রগুলিতে সীমাবদ্ধতা প্রত্যাহার করা হয়েছে, কার্যকরভাবে একক-মূল্য সম্পর্কের প্রতিনিধিত্ব করার অনুমতি দেয়। বি/62905145 - টার্গেট সত্তা : ডিএও এনটোটেশনস
@Insert
,@Update
এবং@Delete
এখন একটি নতুন সম্পত্তিtargetEntity
রয়েছে, যা লক্ষ্য টেবিলটি নির্দিষ্ট করার অনুমতি দেয় ডিএও পদ্ধতিটি কাজ করার জন্য বোঝানো হয়। এটি সেই ডিএও পদ্ধতির পরামিতিগুলিকে স্বেচ্ছাসেবী পোজো হওয়ার অনুমতি দেয় যা আংশিক সত্তা হিসাবে ব্যাখ্যা করা হবে। অনুশীলনে, এটি আংশিক সন্নিবেশ, মোছা এবং আপডেটগুলির অনুমতি দেয়। বি/127549506 - করুটাইন প্রবাহ :
@Query
ডিএও পদ্ধতিগুলি এখন রিটার্ন টাইপFlow<T>
হতে পারে। ক্যোয়ারিতে পর্যবেক্ষণকারী টেবিলগুলি অবৈধ হলে ফিরে আসা প্রবাহটি মানগুলির একটি নতুন সেট পুনরায় নির্গমন করবে।Channel<T>
রিটার্ন টাইপের সাথে একটি ডিএও ফাংশন ঘোষণা করা একটি ত্রুটি, ঘর পরিবর্তে আপনাকেFlow
ব্যবহার করতে উত্সাহিত করে এবং তারপরেFlow
একটিChannel
রূপান্তর করতে প্রতিবেশী ফাংশনগুলি ব্যবহার করে। বি/130428884 - গ্রেডল ইনক্রিমেন্টাল টীকা প্রসেসর : রুম এখন একটি গ্রেডল বিচ্ছিন্ন টীকা প্রসেসর এবং প্রসেসর বিকল্প
room.incremental
মাধ্যমে বর্ধনযোগ্যতা সক্ষম করা যেতে পারে e ইনক্রিমেন্টাল। আরও তথ্যের জন্য রুম সংকলক বিকল্পগুলি দেখুন। আপনি যদি কোনও সমস্যার মুখোমুখি হন তবে দয়া করে এখানে একটি বাগ ফাইল করুন। আমরা ভবিষ্যতে, স্থিতিশীল সংস্করণে ডিফল্টরূপে বর্ধনযোগ্যতা সক্ষম করার পরিকল্পনা করছি। বি/112110217 - প্রজেকশনগুলি প্রসারিত করা : একটি নতুন পরীক্ষামূলক সংকলক বিকল্প
room.expandProjection
যুক্ত করা হয়েছিল যা কেবল রিটার্নিং টাইপ পোজোতে কলামগুলি ধারণ করার জন্য একটি স্টার প্রক্ষেপণ সহ একটি ক্যোয়ারী পুনর্লিখনের কারণ হিসাবে তৈরি করে। উদাহরণস্বরূপ,@Query("SELECT * FROM Song")
যা কেবল দুটি ক্ষেত্রের সাথেSongIdAndTitle
নামে একটি পোজো ফিরিয়ে দেয়। তারপরে রুমটিSELECT id, title FROM Song
যেমন রিটার্নের ধরণটি সন্তুষ্ট করতে ন্যূনতম কলামগুলির সেটটি আনা হয়। এটি মূলতCURSOR_MISMATCH
সতর্কতাটিকে সরিয়ে দেয় যা উপস্থাপিত হয় যখন ক্যোয়ারীটি অতিরিক্ত কলামগুলি ফেরত দেয় যা ফিরে আসা পোজো টাইপের কোনও ক্ষেত্রের সাথে মেলে না।
সংস্করণ 2.2.0-আরসি 01
5 সেপ্টেম্বর, 2019
androidx.room:room:2.2.0-rc01
-আরসি 01 প্রকাশিত হয়েছে। এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
ঘর 2.2.0-beta01
থেকে কোনও জনসাধারণের পরিবর্তন নেই।
সংস্করণ 2.2.0-BETA01
22 আগস্ট, 2019
androidx.room:room-*:2.2.0-beta01
*:2.2.0-বিটা 01 প্রকাশিত হয়েছে। এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
বাগ ফিক্স
- একটি বাগ স্থির করে যেখানে একটি করটিন ফ্লো ক্যোয়ারী একটি নির্দিষ্ট সময়ের পরে নতুন মানগুলি পুনরায় তৈরি করা বন্ধ করে দেয়। ( খ/139175786 )
- এমন একটি বাগ ঠিক করা হয়েছে যেখানে কক্ষটি কোনও ডাটাবেস খোলার সময় কোনও লিগ্যাসি স্কিমা হ্যাশ কোড গ্রহণ করবে না যা কক্ষের 1.0 থেকে কোনও স্থানান্তরিত হয়নি, অবৈধ স্কিমার কারণে রানটাইম ক্র্যাশ ঘটায়। ( খ/139306173 )
সংস্করণ 2.2.0-আলফা 02
7 আগস্ট, 2019
androidx.room:room-*:2.2.0-alpha02
-*:2.2.0-ALPHA02 প্রকাশিত হয়েছে। এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
নতুন বৈশিষ্ট্য
- করুটাইন প্রবাহ :
@Query
ডিএও পদ্ধতিগুলি এখন রিটার্ন টাইপFlow<T>
হতে পারে। ক্যোয়ারিতে পর্যবেক্ষণকারী টেবিলগুলি অবৈধ হলে ফিরে আসা প্রবাহটি মানগুলির একটি নতুন সেট পুনরায় নির্গমন করবে।Channel<T>
রিটার্ন টাইপের সাথে একটি ডিএও ফাংশন ঘোষণা করা একটি ত্রুটি, ঘর পরিবর্তে আপনাকেFlow
ব্যবহার করতে উত্সাহিত করে এবং তারপরেFlow
একটিChannel
রূপান্তর করতে প্রতিবেশী ফাংশনগুলি ব্যবহার করে। বি/130428884 - প্রজেকশনগুলি প্রসারিত করা : একটি নতুন পরীক্ষামূলক সংকলক বিকল্প
room.expandProjection
যুক্ত করা হয়েছিল যা কেবল রিটার্নিং টাইপ পোজোতে কলামগুলি ধারণ করার জন্য একটি স্টার প্রক্ষেপণ সহ একটি ক্যোয়ারী পুনর্লিখনের কারণ হিসাবে তৈরি করে। উদাহরণস্বরূপ,@Query("SELECT * FROM Song")
যা কেবল দুটি ক্ষেত্রের সাথেSongIdAndTitle
নামে একটি পোজো ফিরিয়ে দেয়। তারপরে রুমটিSELECT id, title FROM Song
যেমন রিটার্নের ধরণটি সন্তুষ্ট করতে ন্যূনতম কলামগুলির সেটটি আনা হয়। এটি মূলতCURSOR_MISMATCH
সতর্কতাটিকে সরিয়ে দেয় যা উপস্থাপিত হয় যখন ক্যোয়ারীটি অতিরিক্ত কলামগুলি ফেরত দেয় যা ফিরে আসা পোজো টাইপের কোনও ক্ষেত্রের সাথে মেলে না। -
onDestructiveMigrate
হ'লRoomDatabase.Callback
যুক্ত একটি নতুন কলব্যাক এপিআই। বি/79962330
বাগ ফিক্স
- এমন একটি বাগ স্থির করে যেখানে ক্ষেত্রটি সুরক্ষিত থাকলে ফিল্ড সেটার হিসাবে কোনও পদ্ধতি ব্যবহার করে ঘরটি ভুল কোড তৈরি করে। বি/136194628
- মাল্টি-ইনস্ট্যান্স অবৈধকরণ সক্ষম করা হয়েছিল এবং অবৈধ পরিষেবা মারা গিয়েছিল তখন দ্বিতীয় প্রক্রিয়াতে অবৈধ ট্র্যাকারকে এনপিই নিক্ষেপ করে এমন একটি বাগ স্থির করে। বি/137454915
- এমন একটি বাগ ঠিক করা হয়েছে যেখানে ঘরটি
@RawQuery
সাথে টীকাযুক্ত উত্তরাধিকার সূত্রে প্রাপ্ত সাসপেন্ড ফাংশনের রিটার্নের ধরণটি সঠিকভাবে সনাক্ত করতে পারে না। বি/137878827 - তুলনীয় যে
ByteBuffer
ব্যবহার করতে সম্পর্কিত কীটি টাইপ ব্লবের হয়@Relation
জন্য উত্পন্ন কোডটি আপডেট করে। বি/137881998 - এমন একটি বাগ ঠিক করা হয়েছে যেখানে কক্ষটি
@Insert
,@Update
এবং@Delete
আংশিক সত্তা পরামিতি হিসাবে ব্যবহৃত পোজোগুলিতে নিখোঁজ সেটার সম্পর্কে অভিযোগ করবে। বি/138664463 - এমন একটি বাগ ঠিক করা হয়েছে যেখানে সত্তা শ্রেণি নির্দিষ্ট ডিএও পদ্ধতিতে ব্যবহৃত হত যখন
@Entity
মাধ্যমে উপেক্ষা করা কলামের জন্য নিখোঁজ গেটার এবং সেটার সম্পর্কে অভিযোগ করবে। বি/138238182 - এমন একটি বাগ ঠিক করা হয়েছে যেখানে ঘরটি পুনরায় ব্যবহৃত প্যারামিটারগুলির সাথে একটি ক্যোয়ারী কার্যকর করার সময় রানটাইম ব্যতিক্রমের কারণ হিসাবে বাইন্ডিং আরগসকে অবস্থানগত আরগগুলিতে সঠিকভাবে রূপান্তর করবে না। বি/137254857
সংস্করণ 2.2.0-আলফা 01
10 জুলাই, 2019
নতুন বৈশিষ্ট্য
- প্রাক-প্যাকেজড ডাটাবেস :
RoomDatabase.Builder
এ দুটি নতুন এপিআই এখন ইতিমধ্যে জনবহুল ডাটাবেস ফাইল প্রদত্ত একটিRoomDatabase
তৈরির জন্য উপলব্ধ।createFromAsset()
এর জন্য হয় যখন প্রাক-জনবহুল ডাটাবেস ফাইলটি এপির সম্পদ ফোল্ডারে থাকে, যখনcreateFromFile()
যখন ফাইলটি স্বেচ্ছাসেবী স্থানে থাকে তখন হয়। এই এপিআইয়ের ব্যবহারগুলি ধ্বংসাত্মক মাইগ্রেশনের আচরণকে পরিবর্তন করে যেমন ফ্যালব্যাক মাইগ্রেশনের সময়, ঘরটি যদি উপলভ্য হয় তবে প্রাক-জনবহুল ডাটাবেসটি পুনরায় কপি করার চেষ্টা করবে, অন্যথায় এটি কেবল সমস্ত টেবিলগুলি বাদ দেওয়া এবং পুনরায় তৈরি করার জন্য ফলব্যাক করে। বি/62185732 - স্কিমা ডিফল্ট মান :
@ColumnInfo
এখন একটি নতুন সম্পত্তিdefaultValue
রয়েছে যা একটি কলামের ডিফল্ট মান নির্দিষ্ট করতে ব্যবহার করা যেতে পারে। ডিফল্ট মানগুলি একটি ডাটাবেস স্কিমার অংশ এবং নির্দিষ্ট করা হলে মাইগ্রেশন চলাকালীন বৈধ করা হবে। বি/64088772দ্রষ্টব্য: যদি আপনার ডাটাবেস স্কিমাতে ইতিমধ্যে ডিফল্ট মান থাকে যেমন যেমন
ALTER TABLE x ADD COLUMN y INTEGER NOTNULL DEFAULT z
এবং আপনি একই কলামগুলিতে@ColumnInfo
মাধ্যমে ডিফল্ট মানগুলি সংজ্ঞায়িত করার সিদ্ধান্ত নেন, তবে আপনাকে অবর্ণনীয় ডিফল্ট মানগুলি বৈধতা দেওয়ার জন্য একটি মাইগ্রেশন সরবরাহ করতে হবে। আরও তথ্যের জন্য রুম মাইগ্রেশন দেখুন। - বহু থেকে বহু সম্পর্ক :
@Relation
রিলেশনে এখন একটি নতুন সম্পত্তিassociateBy
রয়েছে, এটি একটি নতুন টীকা@Junction
নেয়, এমন একটি সম্পর্ক ঘোষণা করতে ব্যবহৃত হয় যা একটি জংশন টেবিলের মাধ্যমে সন্তুষ্ট হওয়া দরকার (এটি একটি যোগদানের টেবিল হিসাবেও পরিচিত)। বি/69201917 - এক-এক-একের সম্পর্ক :
@Relation
দিয়ে টাইপেরList
বাSet
হওয়ার সাথে টীকাযুক্ত পোজো ক্ষেত্রগুলিতে সীমাবদ্ধতা প্রত্যাহার করা হয়েছে, কার্যকরভাবে একক-মূল্য সম্পর্কের প্রতিনিধিত্ব করার অনুমতি দেয়। বি/62905145 - টার্গেট সত্তা : ডিএও এনটোটেশনস
@Insert
,@Update
এবং@Delete
এখন একটি নতুন সম্পত্তিtargetEntity
রয়েছে, যা লক্ষ্য টেবিলটি নির্দিষ্ট করার অনুমতি দেয় ডিএও পদ্ধতিটি কাজ করার জন্য বোঝানো হয়। এটি সেই ডিএও পদ্ধতির পরামিতিগুলিকে স্বেচ্ছাসেবী পোজো হওয়ার অনুমতি দেয় যা আংশিক সত্তা হিসাবে ব্যাখ্যা করা হবে। অনুশীলনে, এটি আংশিক সন্নিবেশ, মোছা এবং আপডেটগুলির অনুমতি দেয়। বি/127549506 - গ্রেডল ইনক্রিমেন্টাল টীকা প্রসেসর : রুম এখন একটি গ্রেডল বিচ্ছিন্ন টীকা প্রসেসর এবং প্রসেসর বিকল্প
room.incremental
মাধ্যমে বর্ধনযোগ্যতা সক্ষম করা যেতে পারে e ইনক্রিমেন্টাল। আরও তথ্যের জন্য রুম সংকলক বিকল্পগুলি দেখুন। আপনি যদি কোনও সমস্যার মুখোমুখি হন তবে দয়া করে এখানে একটি বাগ ফাইল করুন। আমরা ভবিষ্যতে, স্থিতিশীল সংস্করণে ডিফল্টরূপে বর্ধনযোগ্যতা সক্ষম করার পরিকল্পনা করছি। বি/112110217
বাগ ফিক্স
- ক্যোয়ারির সম্পূর্ণ হওয়ার আগে কোনও ক্যোয়ারির আরএক্স স্ট্রিমটি নিষ্পত্তি করা হলে কক্ষটি আর গ্লোবাল ত্রুটি হ্যান্ডলারের কাছে
EmptySetResultException
প্রচার করবে না। বি/130257475 - এমন একটি বাগ স্থির করে যেখানে ঘরটি একটি ভুল ত্রুটি বার্তা প্রদর্শন করবে যখন
@RawQuery
সাথে বর্ণিত একটি সাসপেন্ড ডিএও ফাংশনটি কোনও রিটার্নের ধরণ নেই। বি/134303897 - ঘরটি আর কাঁচা ধরণের সাথে ডিএও অ্যাডাপ্টার তৈরি করবে না। বি/135747255
সংস্করণ 2.1.0
সংস্করণ 2.1.0
13 জুন, 2019
2.1.0-rc01
থেকে কোনও পরিবর্তন ছাড়াই রুম 2.1.0 প্রকাশিত হয়। সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
2.0.0 সাল থেকে গুরুত্বপূর্ণ পরিবর্তন
- এফটিএস : রুম এখন ম্যাপিং এফটিএস 3 বা এফটিএস 4 টেবিল সহ সত্তাগুলিকে সমর্থন করে। ম্যাপিং পূর্ণ-পাঠ্য অনুসন্ধান টেবিল সহ একটি শ্রেণি ঘোষণার জন্য এখন
@Entity
সাথে টীকাযুক্ত ক্লাসগুলি অতিরিক্তভাবে@Fts3
বা@Fts4
দিয়ে টীকা দেওয়া যেতে পারে। আরও কাস্টমাইজেশনের জন্য এফটিএস বিকল্পগুলি টীকাগুলির পদ্ধতিগুলির মাধ্যমে উপলব্ধ। - ভিউস : রুম এখন
@DatabaseView
টীকা ব্যবহার করে একটি সঞ্চিত ক্যোয়ারী হিসাবে একটি শ্রেণিকে ঘোষণা করা সমর্থন করে, যা একটি দৃশ্য হিসাবেও পরিচিত। - কোরোটাইনস : ডিএও পদ্ধতিগুলি এখন স্থগিত ফাংশন হতে পারে। এই কার্যকারিতাটির সুবিধা নিতে আপনার নির্ভরতাগুলিতে
room-ktx
অন্তর্ভুক্ত করুন। কেটিএক্স আর্টিফ্যাক্ট এক্সটেনশন ফাংশনRoomDatabase.withTransaction
। - অটো মান : রুম এখন সত্তা এবং পোজো হিসাবে অটোভালু টীকাযুক্ত ক্লাসগুলি ঘোষণা করে সমর্থন করে। রুম টীকাগুলি
@PrimaryKey
,@ColumnInfo
,@Embedded
এবং@Relation
এখন একটি অটো মান টীকাযুক্ত শ্রেণীর বিমূর্ত পদ্ধতিতে ঘোষণা করা যেতে পারে। নোট করুন যে এই টীকাগুলি অবশ্যই তাদের সঠিকভাবে বোঝার জন্য কক্ষের জন্য@CopyAnnotations
সাথে থাকতে হবে। - অতিরিক্ত অ্যাসিঙ্ক সমর্থন : ডিএও পদ্ধতিগুলি
@Insert
,@Delete
বা@Update
সাথে টীকাযুক্ত,@Query
সাথেINSERT
,DELETE
বাUPDATE
বিবৃতিযুক্ত, এখন আরএক্স রিটার্ন প্রকারগুলিCompletable
,Single
Maybe
এবং পেয়ারার রিটার্ন টাইপListenableFuture
সমর্থন করে এবং সেগুলিও স্থগিত ফাংশন হতে পারে। - একই ডাটাবেস ফাইলটি ব্যবহার করে রুমডাটাবেসের একাধিক দৃষ্টান্ত জুড়ে অবৈধতা সক্ষম করার জন্য
RoomDatabase.Builder
enableMultiInstanceInvalidation
একটি নতুন এপিআই। -
fallbackToDestructiveMigrationOnDowngrade
হ'লRoomDatabase.Builder
একটি নতুন এপিআই। -
ignoredColumns
@Entity
এন্টিটি টীকাগুলিতে একটি নতুন এপিআই যা নাম অনুসারে উপেক্ষা করা ক্ষেত্রগুলি তালিকাভুক্ত করতে ব্যবহার করা যেতে পারে। - ঘরটি এখন যথাযথভাবে কোটলিনের প্রাথমিক নির্মাতা ডেটা ক্লাসে ব্যবহার করবে যাতে বৈশিষ্ট্যগুলি
vars
হিসাবে ঘোষণা করার প্রয়োজনীয়তা এড়িয়ে যায়।
সংস্করণ 2.1.0-আরসি 01
29 মে, 2019
বাগ ফিক্স
- একটি রুম ইনিশিয়ালাইজেশন ত্রুটি স্থির করে যা ইতিমধ্যে সেটআপ টেম্প_স্টোর কনফিগারেশনের কারণে ঘটতে পারে। বি/132602198
- এসকিউএলাইট 3.27.0 এবং তারও বেশি ব্যবহারকারীদের জন্য একটি ডাবল উদ্ধৃতি ব্যবহারের সতর্কতা স্থির করুন। বি/131712640
- একটি বাগ স্থির করে যেখানে একাধিক অবৈধকরণ চেক সমান্তরালভাবে ঘটবে যখন অবৈধকরণ ট্র্যাকার ক্রাশের কারণ হতে পারে। বি/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 { }
মোড়কে এড়িয়ে যেতে বাধা দেয়।
বাগ ফিক্স
- এমন একটি বাগ ঠিক করা হয়েছে যেখানে কক্ষটি সংগ্রহের ধরণের প্যারামিটারযুক্ত কোটলিন ডিএও ফাংশনের জন্য টাইপকনভার্টারের সাথে মেলে ব্যর্থ হবে। বি/122066791
সংস্করণ 2.1.0-Alpha06
22 মার্চ, 2019
এপিআই / আচরণ পরিবর্তন
- অ্যাসিঙ্ক লেনদেনের ক্যোয়ারীগুলি এখন সিরিয়ালাইজ করা হয়েছে যে ঘরটি ডাটাবেস লেনদেন সম্পাদনের জন্য একাধিক থ্রেড ব্যবহার করবে না।
RoomDatabase.Builder.setTransactionExecutor(Executor)
যুক্ত করা হয়েছিল যাতে এক্সিকিউটরকে লেনদেনের জন্য ব্যবহার করার জন্য কনফিগার করার অনুমতি দেওয়া হয়েছিল। -
RoomDatabase.runInTransaction(Callable)
আর রানটাইম এক্সসেপশনগুলিতে চেক ব্যতিক্রমগুলি মোড়ানো হবে না। বি/128623748
বাগ ফিক্স
- একটি বাগ ঠিক করা হয়েছে যেখানে অবৈধ ট্র্যাকার সামগ্রী টেবিল এবং একটি বাহ্যিক সামগ্রী এফটিএস টেবিল উভয়ের জন্য পর্যবেক্ষক যুক্ত করা হলে কোনও সামগ্রী সারণী পর্যবেক্ষণ বন্ধ করে দেবে। বি/128508917
- স্ক্লাইট 3.24.0 এর সাথে মেলে আপডেট
Room
স্ক্লাইট ব্যাকরণ। বি/110883668
সংস্করণ 2.1.0-Alpha05
13 মার্চ, 2019
নতুন বৈশিষ্ট্য
- The extension function
RoomDatabase.withTransaction
allows you to safely perform database transactions within a coroutine. Room extensions functions along with coroutines support are available in theroom-ktx
artifact. - Non-abstract DAO methods annotated with
@Transaction
can now be suspend functions. b/120241587
API / Behavior Changes
- The artifact
room-coroutines
has been renamed toroom-ktx
following the same naming as other androidx artifacts. -
beginTransaction
,setTransactionSuccessful
andendTransaction
inRoomDatabase
have been deprecated in favor ofrunInTransaction
and theroom-ktx
extension functionwithTransaction
.
বাগ ফিক্স
- Fixed a bug where tokenizer arguments were being dropped if the tokenizer used was SIMPLE. b/125427014
- Fixed a bug where Room would fail to correctly identify suspending functions with parameters whos type were an inner class. b/123767877
- Fixed a bug where deferred
@Query
DAO method withINSERT
,UPDATE
orDELETE
statements were eagerly preparing the query in the main thread. b/123695593 - Fixed various bugs where Room would generate incorrect code for certain suspend functions. b/123466702 and b/123457323
- Fixed a bug where deprecated usage of methods were not being correctly suppressed in generated code. b/117602586
- Updated Room dependency of androidx.sqlite to 1.0.2 which contain fixes for correctly handling corrupted databases. b/124476912
পরিচিত সমস্যা
- Room 2.1.0-alpha05 depends on the
kotlinx-metadata-jvm
artifact which is not currently available in Maven Central ( KT-27991 ). This dependency can be resolved by addingmaven { url "https://kotlin.bintray.com/kotlinx/" }
to your project repositories.
Version 2.1.0-alpha04
25 জানুয়ারী, 2019
নতুন বৈশিষ্ট্য
- DAO methods annotated with
@Query
containingINSERT
,UPDATE
orDELETE
statements can now return async typesSingle
,Mayble
,Completable
andListenableFuture
. Additionally they can also be suspend functions. b/120227284
API / Behavior Changes
- Room will now throw an error if a non-abstract DAO method annotated with
@Transaction
returns an async type such asSingle
,Mayble
,Completable
,LiveData
orListenableFuture
. Since transactions are thread confined it is currently impossible for Room to begin and end a transaction around a function that may peform queries in different threads. b/120109336 -
OnConflictStrategy.FAIL
andOnConflictStrategy.ROLLBACK
have been@Deprecated
since they do not behave as intended with Android's current SQLite bindings. b/117266738
বাগ ফিক্স
- Fixed a bug where Room wouldn't correctly use the TypeConverter of a return type if the DAO method was a suspend function. b/122988159
- Fixed a bug where Room would incorrectly identify inherited suspend functions as non-suspending. b/122902595
- Fixed a bug where Room would generate incorrect code when an
@Embedded
field was in a parent class and used in multiple child classes. b/121099048 - Fixed an issue where the database would deadlock when invoking DAO suspend functions between a
beginTransaction()
andendTransaction()
. b/120854786
Version 2.1.0-alpha03
4 ডিসেম্বর, 2018
এপিআই পরিবর্তন
- The FTS
tokenizer
in@Fts3
/@Fts4
now takes a String instead of an Enum. This allows custom tokenizers to be used by Room. Built-in tokenizers are still defined inFtsOptions
as string constants. b/119234881
নতুন বৈশিষ্ট্য
- Couroutines : DAO methods can now be suspend functions. To support suspend functions in Room a new artifact has been released,
room-coroutines
. b/69474692 - DAO methods annotated with
@Insert
,@Delete
or@Update
now supportListenableFuture
as return type. b/119418331
বাগ ফিক্স
- Fixed a bug where Room would incorrectly attempt to find a constructor with columns in the
ignoredColumns
property of@Entity
. b/119830714 - Fixed a bug where Room would not mark DAO method parameters as final in their generated implementation. b/118015483
- Fixed a bug where
Room
processor would crash when reporting an error on a query with special symbols. b/119520136 - Fixed a bug where Room would decline other various
Collection
implementations as arguments of anIN
expression. b/119884035 - Fixed a bug where LiveData returned from Room would get garbage collected when observed forever causing it to no longer emit new data. b/74477406
- Updated
RoomDatabase
's close lock to reduce lock contention. b/117900450
Version 2.1.0-alpha02
অক্টোবর 30, 2018
নতুন বৈশিষ্ট্য
- Added support for referencing a
@DatabaseView
in a@Relation
. b/117680932
বাগ ফিক্স
- Fixed a bug where Room would perform disk I/O in the main thread when subscribing and disposing from an Rx return type. b/117201279
- Fixed a bug where Room would fail to find an appropriate type converter for a field in a Kotlin entity class. b/111404868
- Fixed a bug where Room would generate incorrect code for a
DAO
interface implementation containing a Kotlin default method that has no arguments. b/117527454 - Updated
Room
SQLite grammar parser, fixing a performance issue that would cause long build times. b/117401230
Version 2.1.0-alpha01
অক্টোবর 8, 2018
নতুন বৈশিষ্ট্য
- FTS : Room now supports entities with a mapping FTS3 or FTS4 table. Classes annotated with
@Entity
can now be additionally annotated with@Fts3
or@Fts4
to declare a class with a mapping full-text search table. FTS options for further customization are available via the annotation's methods. b/62356416 - Views : Room now supports declaring a class as a stored query, also known as a view using the @DatabaseView annotation. b/67033276
- Auto Value : Room now supports declaring AutoValue annotated classes as entities and POJOs. The Room annotations
@PrimaryKey
,@ColumnInfo
,@Embedded
and@Relation
can now be declared in an auto value annotated class' abstract methods. Note that these annotation must also be accompanied by@CopyAnnotations
for Room to properly understand them. b/62408420 - Additional Rx Return Types Support : DAO methods annotated with
@Insert
,@Delete
or@Update
now support Rx return typesCompletable
,Single<T>
andMaybe<T>
. b/63317956 - Immutable Types with
@Relation
: Room previously required@Relation
annotated fields to be settable but now they can be constructor parameters. -
enableMultiInstanceInvalidation
: Is a new API inRoomDatabase.Builder
to enable invalidation across multiple instances of RoomDatabase using the same database file. This multi-instance invalidation mechanism also works across multiple processes. b/62334005 -
fallbackToDestructiveMigrationOnDowngrade
: Is a new API inRoomDatabase.Builder
to automatically re-create the database if a downgrade happens. b/110416954 -
ignoredColumns
: Is a new API in the@Entity
annotation that can be used to list ignored fields by name. Useful for ignoring inherited fields on an entity. b/63522075
API / Behavior Changes
-
mCallback
andmDatabase
inRoomDatabase
are now@Deprecated
and will be removed in the next major version of Room. b/76109329
বাগ ফিক্স
- Fixed two issues where Room wouldn't properly recover from a corrupted database or a bad migration during initialization. b/111504749 and b/111519144
- Room will now properly use Kotlin's primary constructor in data classes avoiding the need to declare the fields as
vars
. b/105769985
সংস্করণ 2.0.0
সংস্করণ 2.0.0
অক্টোবর 1, 2018
androidx.room 2.0.0
is released with no changes from 2.0.0-rc01.
Version 2.0.0-rc01
সেপ্টেম্বর 20, 2018
androidx.room 2.0.0-rc01
is released with no changes from 2.0.0-beta01.
Version 2.0.0-beta01
জুলাই 2, 2018
API / Behavior Changes
- Added
RoomDatabase.Builder.setQueryExecutor()
to allow customization of where queries are run - Added RxJava2
Observable
support - Generated DAO and Database implementations are now final
বাগ ফিক্স
- Specify class/field name in "cannot find getter for field" error b/73334503
- Fixed RoomOpenHelper backwards compatibility with older versions of Room b/110197391
Pre-AndroidX Dependencies
For the pre-AndroidX versions of Room, include these dependencies:
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
Room 1.1.1
is identical to Room 1.1.1-rc1
.
Version 1.1.1-rc1
May 16, 2018 We highly recommend using Room 1.1.1-rc1
instead of 1.1.0
if you are using migrations.
Fixed a bug where Room would not handle post migration initialization properly b/79362399
সংস্করণ 1.1.0
Version 1.1.0-beta3
এপ্রিল 19, 2018
বাগ ফিক্স
- Fix compilation error when a Kotlin POJO references a relation entity that was defined in Java b/78199923
Version 1.1.0-beta2
5 এপ্রিল, 2018
বাগ ফিক্স
Fixed a critical bug in
Room
RxSingle
andMaybe
implementations where it would recycle the query ahead of time, causing problems if you add more than 1 observer to the returnedSingle
orMaybe
instances. b/76031240[RoomDatabase.clearAllTables][ref-clearAllTables] will not
VACUUM
the database if it is called inside a transaction. b/77235565
Version 1.1.0-beta1
21 মার্চ, 2018
এপিআই পরিবর্তন
- Based on API Review feedback,
@RawQuery
does not accept passing aString
as the query parameter anymore. You need to use [SupportSQLiteQuery][ref-SupportSQLiteQuery]. (see [SimpleSQLiteQuery][ref-SimpleSQLiteQuery] to easily create an instance of [SupportSQLiteQuery][ref-SupportSQLiteQuery] with argument support). - RoomDatabase.Builder's [fallbackToDestructiveMigrationFrom][ref-fallbackToDestructiveMigrationFrom] method now accepts
vararg int
instead ofvararg Integer
.
বাগ ফিক্স
- [RoomDatabase.clearAllTables][ref-clearAllTables] now tries to return space back to the operating system by setting a WAL checkpoint and
VACUUM
ing the database. - [
@RawQuery
][ref-RawQuery] now accepts any Pojo for theobservedEntities
property as long as the Pojo references to one or more entities via itsEmbedded
fields orRelation
s. b/74041772 - Paging: Room's DataSource implementation now correctly handles multi-table dependencies (such as relations, and joins). Previously these would fail to trigger new results, or could fail to compile. b/74128314
Version 1.1.0-alpha1
জানুয়ারী 22, 2018
নতুন বৈশিষ্ট্য
-
RawQuery
: This new API allows@Dao
methods to receive the SQL as a query parameter b/62103290 , b/71458963 -
fallBackToDestructiveMigrationsFrom
: This new API inRoomDatabase.Builder
allows for finer grained control over from which starting schema versions destructive migrations are allowed (as compared to fallbackToDestructiveMigration) b/64989640 - Room now only supports newer Paging APIs (alpha-4+), dropping support for the deprecated
LivePagedListProvider
. To use the new Room alpha, you'll need to use pagingalpha-4
or higher, and switch fromLivePagedListProvider
toLivePagedListBuilder
if you haven't already.
বাগ ফিক্স
- Improved support for Kotlin Kapt types. b/69164099
- Order of fields do not invalidate schema anymore. b/64290754
রুম
সর্বশেষ আপডেট | স্থিতিশীল রিলিজ | প্রার্থী মুক্তি | বিটা রিলিজ | আলফা রিলিজ |
---|---|---|---|---|
জানুয়ারী 29, 2025 | 2.6.1 | - | - | 2.7.0-alpha13 |
নির্ভরতা ঘোষণা করা
To add a dependency on Room, you must add the Google Maven repository to your project. Read Google's Maven repository for more information.
Dependencies for Room include testing Room migrations and Room RxJava
Add the dependencies for the artifacts you need in the build.gradle
file for your app or module:
কোটলিন
dependencies { val room_version = "2.6.1" implementation("androidx.room:room-runtime:$room_version") // If this project uses any Kotlin source, use Kotlin Symbol Processing (KSP) // See Add the KSP plugin to your project ksp("androidx.room:room-compiler:$room_version") // If this project only uses Java source, use the Java annotationProcessor // No additional plugins are necessary annotationProcessor("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") }
গ্রোভি
dependencies { def room_version = "2.6.1" implementation "androidx.room:room-runtime:$room_version" // If this project uses any Kotlin source, use Kotlin Symbol Processing (KSP) // See KSP Quickstart to add KSP to your build ksp "androidx.room:room-compiler:$room_version" // If this project only uses Java source, use the Java annotationProcessor // No additional plugins are necessary annotationProcessor "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" }
For information on using the KAPT plugin, see the KAPT documentation .
For information on using the KSP plugin, see the KSP quick-start documentation .
For information on using Kotlin extensions, see the ktx documentation .
For more information about dependencies, see Add Build Dependencies .
Optionally, for non-Android libraries (ie Java or Kotlin only Gradle modules) you can depend on androidx.room:room-common
to use Room annotations.
Configuring Compiler Options
Room has the following annotation processor options.
room.schemaLocation | directory Enables exporting database schemas into JSON files in the given directory. See Room Migrations for more information. |
room.incremental | boolean Enables Gradle incremental annotation processor. ডিফল্ট মান true । |
room.generateKotlin | boolean Generate Kotlin source files instead of Java. Requires KSP. ডিফল্ট মান false । See version 2.6.0 notes for more details. |
Use the Room Gradle Plugin
With Room version 2.6.0 and higher, you can use the Room Gradle Plugin to configure options for the Room compiler. The plugin configures the project such that generated schemas (which are an output of the compile tasks and are consumed for auto-migrations) are correctly configured to have reproducible and cacheable builds.
To add the plugin, in your top-level Gradle build file, define the plugin and its version.
গ্রোভি
plugins { id 'androidx.room' version "$room_version" apply false }
কোটলিন
plugins { id("androidx.room") version "$room_version" apply false }
In the module-level Gradle build file, apply the plugin and use the room
extension.
গ্রোভি
plugins { id 'androidx.room' } android { ... room { schemaDirectory "$projectDir/schemas" } }
কোটলিন
plugins { id("androidx.room") } android { ... room { schemaDirectory("$projectDir/schemas") } }
Setting a schemaDirectory
is required when using the Room Gradle Plugin. This will configure the Room compiler and the various compile tasks and its backends (javac, KAPT, KSP) to output schema files into flavored folders, for example schemas/flavorOneDebug/com.package.MyDatabase/1.json
. These files should be checked into the repository to be used for validation and auto-migrations.
Some options cannot be configured in all versions of the Room Gradle Plugin, even though they are supported by the Room compiler. The table below lists each option and shows the version of the Room Gradle Plugin that added support for configuring that option using the room
extension. If your version is lower, or if the option is not supported yet, you can use annotation processor options instead.
অপশন | সংস্করণ থেকে |
---|---|
room.schemaLocation (required) | 2.6.0 |
room.incremental | - |
room.generateKotlin | - |
Use annotation processor options
If you aren't using the Room Gradle Plugin, or if the option you want isn't supported by your version of the plugin, you can configure Room using annotation processor options, as described in Add build dependencies . How you specify annotation options depends on whether you use KSP or KAPT for Room.
গ্রোভি
// 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... ] } } } }
কোটলিন
// 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... ) } } } }
Because room.schemaLocation
is a directory and not a primitive type, it is necessary to use a CommandLineArgumentsProvider
when adding this option so that Gradle knows about this directory when conducting up-to-date checks. Migrate your Room database shows a complete implementation of CommandLineArgumentsProvider
that provides the schema location.
প্রতিক্রিয়া
Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.
See the Issue Tracker documentation for more information.
সংস্করণ 2.7
Version 2.7.0-alpha13
জানুয়ারী 29, 2025
androidx.room:room-*:2.7.0-alpha13
is released. Version 2.7.0-alpha13 contains these commits .
এপিআই পরিবর্তন
- Room now targets Kotlin language 2.0 and will require projects to also compile with Kotlin 2.0 and equivalent or high language version. ( I8efb0 , b/315461431 , b/384600605 )
বাগ ফিক্স
- Fix an issue in Room KMP database builder when a simple name instead of a path was used in Android and the database file resolved path would not be located in the app's data directory. ( I83315 , b/377830104 )
- Fix an issue with the Room Gradle Plugin where configuring the schema inputs and output was causing an issue on Android projects:
property 'inputDirectory' is final and cannot be changed any further.
( 1dbb4c , b/376071291 ) - Add support for KSP2 in Room Gradle Plugin fixing an issue where the schema directory was not being properly set up by the plugin. ( Iec3c4 , b/379159770 )
External Contribution
- Fix an issue with
Room
paging integration causing UI jumps when the initial key to refresh is too close to the end of the list. Thanks to Eva! ( I2abbe , b/389729367 )
Version 2.7.0-alpha12
11 ডিসেম্বর, 2024
androidx.room:room-*:2.7.0-alpha12
is released. Version 2.7.0-alpha12 contains these commits .
এপিআই পরিবর্তন
- Add the experimental API
RoomDatabase.Builder.setInMemoryTrackingMode()
to configure whether Room will use an in-memory table or not for invalidation tracking. ( I2a9b2 , b/185414040 )
বাগ ফিক্স
- Destructive migrations now drop views to ensure they are recreated, aligning behavior when
allowDestructiveMigrationForAllTables
is ON (KMP default) with the existing behavior when it's OFF. ( 0a3e83 , b/381518941 )
Version 2.7.0-alpha11
30 অক্টোবর, 2024
androidx.room:room-*:2.7.0-alpha11
is released. Version 2.7.0-alpha11 contains these commits .
এপিআই পরিবর্তন
- Revisit the newly added
convertRows()
method signature to be a suspend function that receives aRawRoomQuery
for room-paging. ( Ie57b5 , b/369136627 )
বাগ ফিক্স
- Fixed the issue in room-paging where invalid code was being generated when using
@Relation
in conjunction withPagingSource
.
Version 2.7.0-alpha10
অক্টোবর 16, 2024
androidx.room:room-*:2.7.0-alpha10
is released. Version 2.7.0-alpha10 contains these commits .
এপিআই পরিবর্তন
- Create internal
ByteArrayWrapper
class to support Relations withByteBuffer
in non-Android & non-JVM platforms. ( I75543 , b/367205685 ) - Add
SQLiteStatement.getColumnType()
along with the variousSQLITE_DATA_*
result constants to enable retrieving the data type of a column. ( I1985c , b/369636251 )
Version 2.7.0-alpha09
2 অক্টোবর, 2024
androidx.room:room-*:2.7.0-alpha09
is released. Version 2.7.0-alpha09 contains these commits .
বাগ ফিক্স
- Fix an issue with the KMP implementation of
room-paging
that would cause anError code: 8, message: attempt to write a readonly database
due to starting a write transaction on a read connection. ( b/368380988 )
Version 2.7.0-alpha08
সেপ্টেম্বর 18, 2024
androidx.room:room-*:2.7.0-alpha08
is released. Version 2.7.0-alpha08 contains these commits .
নতুন বৈশিষ্ট্য
- The
room-paging
artifacts have been migrated to be KMP compatible. ( Ib8756 , b/339934824 ) - The API
invalidationTrackerFlow()
has been commonized as a first-party API asInvalidationTracker.createFlow()
and is now available for non-Android source sets in KMP projects. ( I1fbfa , ( I8fb29 ), b/329291639 , b/329315924 )
এপিআই পরিবর্তন
- All warnings and error messages in Room that use the word
Cursor
have been removed or replaced, asCursor
is no longer an accurate general term to use in the KMP version of Room. ( Id8cd9 , b/334087492 )
বাগ ফিক্স
- Fixed an issue where Room KMP would try to emit code using
UUID
for non-JVM platforms. ( b/362994709 ) - Fixed an issue with the Room Gradle Plugin that would cause an error such as 'Cannot change attributes of configuration … after it has been locked for mutation' when being used in a KMP project with Compose Multiplatform. ( b/343408758 )
Version 2.7.0-alpha07
আগস্ট 21, 2024
androidx.room:room-*:2.7.0-alpha07
is released. Version 2.7.0-alpha07 contains these commits .
নতুন বৈশিষ্ট্য
- The Room Gradle Plugin will now automatically add the exported schemas into the Android Instrumentation Test resource sources so they can be used by the
MigrationTestHelper
.
বাগ ফিক্স
- Fixed an issue with the generated 'actual' of the
RoomDatabaseConstructor
missing the 'actual' modifier in theinitialize
function if such function is also overridden in the 'expect' declaration. ( 359631627 ) - Fixed an issue with the generated 'actual' of the
RoomDatabaseConstructor
not matching the visibility of the 'expect' declaration. ( 358138953 )
Version 2.7.0-alpha06
7 আগস্ট, 2024
androidx.room:room-*:2.7.0-alpha06
is released. Version 2.7.0-alpha06 contains these commits .
এপিআই পরিবর্তন
- Change the instantiation setup for a
RoomDatabase
in a KMP project.
Due to Kotlin 2.0 compilation model, the strategy of referencing a to-be-generated function, named instantiateImpl()
is longer viable. Two new APIs, @ConstructedBy
and RoomDatabaseConstructor
are introduced that replace the instantiateImpl()
strategy. The new strategy is as follow:
Define an expect object that implements
RoomDatabaseConstructor
expect object MyDatabaseCtor : RoomDatabaseConstructor<MyDatabase>
Link the object with the
@Database
declaration using@ConstructedBy
@Database(...) @ConstructedBy(MyDatabaseCtor::class) // NEW abstract class MyDatabase : RoomDatabase
Create a new database instance but without passing a factory argument
fun createNewDatabase(path: String) = Room.databaseBuilder<AppDatabase>(name = path) .setDriver(BundledSQLiteDriver()) .setQueryCoroutineContext(Dispatchers.IO) .build()
Fixes b/316978491 , b/338446862 , and b/342905180
- Support for
@RawQuery
in Room KMP by adding a new API calledRoomRawQuery
that is similar toSupportSQLiteQuery
in terms of holding into the raw SQL string and a function to bind arguments into a statement.@RawQuery
annotated functions can now accept aRoomRawQuery
as their single parameter. ( Iea844 , b/330586815 ) - Add an overload of
setQueryCallback()
that accepts aCoroutineContext
. ( Id66ff , b/309996304 ) - Added support for
linuxArm64
Kotlin Multiplatform targets ( I139d3 , b/338268719 )
বাগ ফিক্স
- Fix an issue where Room would incorrectly generate a call to
recursiveFetchArrayMap
in non-Android targets. ( 710c36 , b/352482325 ) - Fix an issue where sometimes Room would throw an exception about 'Timed out attempting a connection' in a KMP project. ( fa72d0 , b/347737870 )
- Fix an issue in auto-migrations that would check for foreign keys too early before other tables changed their schemas to conform to the new foreign keys. ( 7672c0 , b/352085724 )
Version 2.7.0-alpha05
10 জুলাই, 2024
androidx.room:room-*:2.7.0-alpha05
is released. Version 2.7.0-alpha05 contains these commits .
এপিআই পরিবর্তন
- Renamed
SQLiteKt
toSQLite
andBundledSQLiteKt
toBundledSQLite
. ( I8b501 )
বাগ ফিক্স
- Fixed a bug where a
RoomDatabase
would deadlock or error out with a connection timeout when using theAndroidSQLiteDriver
.
Version 2.7.0-alpha04
জুন 12, 2024
androidx.room:room-*:2.7.0-alpha04
is released. Version 2.7.0-alpha04 contains these commits .
বাগ ফিক্স
- Fixed an issue in Room's annotation processor would generate incompatible KMP code when a multi-map return type was defined in a DAO. ( b/340983093 )
- Fixed an issue where Room would fail to find the generated database implementation if the
@Database
annotated class had no package. ( b/342097292 ) - Fixed an issue where enabling auto-close and multi-instance invalidation would sometimes cause a
ConcurrentModificationException
when the database was auto-closed due to being idle.
Version 2.7.0-alpha03
29 মে, 2024
androidx.room:room-*:2.7.0-alpha03
is released. Version 2.7.0-alpha03 contains these commits .
বাগ ফিক্স
- Fix various issues regarding Kotlin 2.0 and KSP 2.0. Note that Kotlin 2.0 with KSP 2 support is not complete and the team is working on the various APIs and behavior changes in the new compiler. ( b/314151707 )
Version 2.7.0-alpha02
14 মে, 2024
androidx.room:room-*:2.7.0-alpha02
is released. Version 2.7.0-alpha02 contains these commits .
বাগ ফিক্স
- Fixed various KSP issues.
Version 2.7.0-alpha01
1 মে, 2024
androidx.room:room-*:2.7.0-alpha01
is released. Version 2.7.0-alpha01 contains these commits .
নতুন বৈশিষ্ট্য
- Kotlin Multiplatform (KMP) Support : In this release, Room has been refactored to become a Kotlin Multiplatform (KMP) library. Although there is still some work to be done, this release introduces a new version of Room where the majority of the functionality has been “common-ized” (made to be multiplatform). Current supported platforms are Android, iOS, JVM (Desktop), native Mac and native Linux. Any missing functionality in the newly supported platforms will be made “feature-complete” in upcoming Room releases.
For more information on how to get started using Room KMP, please refer to the official Room KMP documentation .
- Kotlin Code Generation on KSP has been turned ON by default if processing is done via KSP. For KAPT or Java only projects, Room will still generate Java sources.
এপিআই পরিবর্তন
- An overload of
Room.databaseBuilder()
has been added that takes a lambda parameter that is meant to be used with a Room generated function to avoid using reflection when instantiating the generatedRoomDatabase
implementation. Example usage is:
Room.databaseBuilder<MyDatabase>(
context = appContext,
name = dbFilePath,
factory = { MyDatabase::class.instantiateImpl() }
)
- An API for configuring a Room with a
CoroutineContext
has been added to the builder:RoomDatabase.Builder.setQueryCoroutineContext
. Note that aRoomDatabase
can only be configured with either executors usingsetQueryExecutor
or with a Coroutine context but not both. - An API for configuring Room with a
SQLite
Driver has been added:RoomDatabase.Builder.setDriver()
. For more information about theSQLite
Driver API refer to the SQLite KMP documentation - APIs for accessing the underlying
SQLiteConnection
from driver APIs have been added:RoomDatabase.useReaderConnection
andRoomDatabase.useWriterConnection
. - Varios Room related callbacks now have an overloaded version that receive
SQLiteConnection
instead ofSupportSQLiteDatabase
. These are intended to be overridden when migrating to a KMP project. For more information about migrating Room usages in an Android app to a common KMP module refer to the migration guide . The callbacks are:-
Migration.migrate(SQLiteConnection)
-
AutoMigrationSpec.onPostMigrate(SQLiteConnection)
-
RoomDatabase.Callback.onCreate(SQLiteConnection)
-
RoomDatabase.Callback.onDestructiveMigration(SQLiteConnection)
-
RoomDatabase.Callback.onOpen(SQLiteConnection)
-
- The KTX artifact
androidx.room:room-ktx
has been merged toandroidx.room:room-runtime
along with all its APIs, the artifact is now blank. Please remove it from your dependency list.
সংস্করণ 2.6
Version 2.6.1
নভেম্বর 29, 2023
androidx.room:room-*:2.6.1
is released. Version 2.6.1 contains these commits.
বাগ ফিক্স
- Resolved issue in generated code where the default value for Double columns in
EntityCursorConverter
was being set to 0 instead of 0.0. A potential fix for a similar edge-case for Float type columns has also been included. ( Id75f5 , b/304584179 ) - Exceptions thrown from
PagingSource
loads will now be propagated as aLoadStateUpdate
ofLoadResult.Error
containing the Throwable. This error state is observable throughPagingDataAdapter.loadStateFlow(Views)
orLazyPagingItems.loadState(Compose)
. Note that this marks a behavioral change where in the past load errors will bubble up as an Exception thrown by the dao method that triggered the load. ( I93887 , b/302708983 )
সংস্করণ 2.6.0
18 অক্টোবর, 2023
androidx.room:room-*:2.6.0
is released. Version 2.6.0 contains these commits.
Important changes since 2.5.0
- The option to enable Kotlin code generation (or “Kotlin CodeGen”) is now available in Room KSP. ( 4297ec0 ). To turn on Kotlin CodeGen in Room, add the
room.generateKotlin
option name to your processor options for KSP. For more details on how to pass processor options for KSP, see the KSP documentation .
Note: When using Kotlin CodeGen, it is important to note that there are additional restrictions that have been added. Abstract properties as DAO getters or DAO queries in Kotlin CodeGen are disallowed, and instead expected to be rewritten as functions to avoid the false notion that the property value is immutable and has a fixed stored result. Another restriction that has been added is that Nullable collection return types are no longer allowed in Room for Kotlin CodeGen.
Warning: You may find that your projects are more strict in terms of nullability when using Kotlin CodeGen. In Kotlin CodeGen, the nullability of type arguments is important, wheras in Java this is mostly ignored. For example, let's say you have a `Flow
- The new artifact for the Room Gradle Plugin has been added to Room with the id
androidx.room
, which solves various existing issues in Room regarding having inputs and outputs of schemas via Gradle annotation processor options. For more details, refer to the Room Version 2.6.0-alpha02 release notes . - Value classes in Room Entities are now supported for KSP. ( 4194095 )
- Nested Map return types in DAO functions are now supported in Room. ( I13f48 , 203008711 )
Version 2.6.0-rc01
20 সেপ্টেম্বর, 2023
androidx.room:room-*:2.6.0-rc01
is released. Version 2.6.0-rc01 contains these commits.
Version 2.6.0-beta01
23 আগস্ট, 2023
androidx.room:room-*:2.6.0-beta01
is released. Version 2.6.0-beta01 contains these commits.
বাগ ফিক্স
- Handling the special case
SQLite
exception during upsert encountered when the2067 SQLITE_CONSTRAINT_UNIQUE
exception is thrown during an upsert, upsert should perform an update. ( If2849 , b/243039555 )
Version 2.6.0-alpha03
9 আগস্ট, 2023
androidx.room:room-*:2.6.0-alpha03
is released. Version 2.6.0-alpha03 contains these commits.
নতুন বৈশিষ্ট্য
এপিআই পরিবর্তন
- A new type annotation called
@MapColumn
has been created to replace@MapInfo
, which is now deprecated. For each column name (keyColumnName
,valueColumnName
, or both) provided in a@MapInfo
annotation, you will need to declare a@MapColumn
annotation with just thecolumnName
and use the annotation on the specific type argument that is being referenced (the key or value of the Map) in the return type of the DAO function. This is because the@MapColumn
annotation is used directly on the type argument within the return type of a DAO function, instead of on the function itself like@MapInfo
. For more information, please refer to the@MapColumn
documentation. ( Ib0305 , b/203008711 ) - Updated API files to annotate compatibility suppression ( I8e87a , b/287516207 )
- The Room Gradle plugin APIs have been updated to not always require per-variant configurations. This means that the plugin can accept a global location for all variants without creating multiple directories, enabling smoother migrations that but is also flexible enough to manually configure flavors or build type schemas while still retaining the benefits of the plugin (reproducible and cacheable builds). ( I09d6f , b/278266663 )
বাগ ফিক্স
- Fixed potential memory leak vulnerability in
QueryInterceptorStatement
. ( I193d1 ) - Fixed incorrect behavior in the
QueryInterceptorDatabase execSQL()
function. ( Iefdc8 )
Version 2.6.0-alpha02
জুন 21, 2023
androidx.room:room-*:2.6.0-alpha02
is released. Version 2.6.0-alpha02 contains these commits.
Room Gradle Plugin
This new release contains a new artifact for the Room Gradle Plugin with id androidx.room
, which solves various existing issues in Room regarding having inputs and outputs of schemas via Gradle annotation processor options. The Room Gradle Plugin configures the project such that generated schemas that are consumed for auto-migrations and are output of the compile tasks are correctly configured to have reproducible and cacheable builds. The plugin offers a DSL to configure the base schema location:
room {
schemaDirectory("$projectDir/schemas/")
}
The plugin will then configure the Room compiler and the various compile tasks and its backends (javac, KAPT, KSP) to output schema files into flavored folders, ie schemas/flavorOneDebug/com.package.MyDatabase/1.json
. As usual these files are checks-in into the repository to be used for validation and auto-migrations. Upon migrating to using the plugin instead of the annotation processor options the existing schema files must be copied to the generated flavor directories created by the plugin, this is a one-time migration operation that must be done manually. The schema documentation in developers.android.com will be updated in the future once feedback is addressed and the plugin reaches stable, so please give it a try.
এপিআই পরিবর্তন
-
RoomDatabase.QueryCallback
has been defined as a functional interface to allow SAM conversion usages. ( Iab8ea , b/281008549 )
বাগ ফিক্স
- Resolving issue arising when instantiating the database in Robolectric after the migration of Room sources from Java to Kotlin. ( Ic053c , b/274924903 )
Version 2.6.0-alpha01
22 মার্চ, 2023
androidx.room:room-*:2.6.0-alpha01
is released. Version 2.6.0-alpha01 contains these commits.
নতুন বৈশিষ্ট্য
- Supporting value classes in Room for KSP. Room is now able to support value classes in Entities. ( 4194095 )
- Kotlin code generation(or “Kotlin CodeGen”) can now be enabled in Room ( 4297ec0 ). To turn on Kotlin CodeGen in Room, add the
room.generateKotlin
option name to your processor options for KSP. For more details on how to pass processor options for KSP, see the KSP documentation .
Note: When using Kotlin CodeGen, it is important to note that there are additional restrictions that have been added. Abstract properties as DAO getters or DAO queries in Kotlin CodeGen are disallowed, and instead expected to be rewritten as functions to avoid the false notion that the property value is immutable and has a fixed stored result. Another restriction that has been added is that Nullable collection return types are no longer allowed in Room for Kotlin CodeGen.
Warning: You may find that your projects are more strict in terms of nullability when using Kotlin CodeGen. In Kotlin CodeGen, the nullability of type arguments is important, wheras in Java this is mostly ignored. For example, let's say you have a `Flow
এপিআই পরিবর্তন
- Guarding against meaningless usage of nullable collections in DAO method return types. ( I777dc , b/253271782 , b/259426907 )
- Add an API for creating a Flow that emits invalidation tracker changes. The API is useful for creating streams that need to react to database changes. ( I8c790 , b/252899305 )
বাগ ফিক্স
- Disallow abstract properties as DAO getters or DAO queries in Kotlin codegen, instead they should be rewritten as functions to avoid the false notion that the property value is immutable and has a fixed stored result. ( If6a13 , b/127483380 , b/257967987 )
সংস্করণ 2.5.2
সংস্করণ 2.5.2
জুন 21, 2023
androidx.room:room-*:2.5.2
is released. Version 2.5.2 contains these commits.
বাগ ফিক্স
- Fix an incompatibility issue with the kotlinx-metadata-jvm. ( 386d5c )
- Fix an issue that causes Room to throw an error when being used in a Robolectric test. ( f79bea , b/274924903 )
সংস্করণ 2.5.1
সংস্করণ 2.5.1
22 মার্চ, 2023
androidx.room:room-*:2.5.1
is released. Version 2.5.1 contains these commits.
বাগ ফিক্স
- Avoid checking the database parent directory in
FrameworkSQLiteHelper
if the database is already open. ( 5de86b8 ) - Use an
isOpenInternal
check when checking if the database is already open. ( e91fb35 ) - Better handling of the reentrant case in
acquireTransactionThread()
ofRoom
is now available. ( 219f98b ). During a suspending transaction, Room uses a thread from the transaction executor, starts an event loop in it and dispatches suspending database operations to it so they are all encapsulated within the transaction coroutine. It is usually expected that the transaction thread is different from the one starting the transaction, but in some cases they are the same. To handle such reentrant cases thewithTransaction()
has been refactored to no longer rely on a control job and instead it will execute the suspending transaction block from within therunBlocking
in the transaction thread.
সংস্করণ 2.5.0
সংস্করণ 2.5.0
22 ফেব্রুয়ারি, 2023
androidx.room:room-paging-guava:2.5.0
, androidx.room:room-paging-rxjava2:2.5.0
, and androidx.room:room-paging-rxjava3:2.5.0
are released. Version 2.5.0 contains these commits.
সংস্করণ 2.5.0
11 জানুয়ারী, 2023
androidx.room:room-*:2.5.0
is released. Version 2.5.0 contains these commits.
Important changes since 2.4.0
- All of
room-runtime
sources has been converted from Java to Kotlin. Note that you may encounter source incompatibility issues if your code is in Kotlin due to the library conversion to Kotlin. For example, a known source incompatible change is that inInvalidationTracker
you will now need to declareonInvalidate()
inObserver
to have a param of typeSet
and notMutableSet
. Moreover, certain getter methods were converted to properties requiring the property access syntax on Kotlin files. Please file a bug if there are any significant incompatibilities. - Added a new shortcut annotation,
@Upsert
, which attempts to insert an entity when there is no uniqueness conflict or update the entity if there is a conflict. ( I7aaab , b/241964353 ) - New room-paging artifacts
room-paging-rxjava2
,room-paging-rxjava3
androom-paging-guava
have been added for support in Room Paging. - Added APIs for providing key and value tables names for disambiguation in
@MapInfo
( Icc4b5 )
Version 2.5.0-rc01
7 ডিসেম্বর, 2022
androidx.room:room-*:2.5.0-rc01
is released. Version 2.5.0-rc01 contains these commits.
- This release is identical to
2.5.0-beta02
.
Version 2.5.0-beta02
9 নভেম্বর, 2022
androidx.room:room-*:2.5.0-beta02
is released. Version 2.5.0-beta02 contains these commits.
এপিআই পরিবর্তন
- Fix various APIs that take query arguments from invariant (
Array<Any?>
) to contravariant (Array<out Any?>
) to match Java's array behavior. ( b/253531073 )
Version 2.5.0-beta01
5 অক্টোবর, 2022
androidx.room:room-*:2.5.0-beta01
is released. Version 2.5.0-beta01 contains these commits.
এপিআই পরিবর্তন
- Restrict the minimum version that supports
@Upsert
to be API 16. This is due to the inability to identity a primary key constraint conflict in older APIs. ( I5f67f , b/243039555 )
বাগ ফিক্স
- Fixed an issue where shadow tables where incorrectly exported to the schema
.json
files, corrupting them. ( I4f83b , b/246751839 )
Version 2.5.0-alpha03
24 আগস্ট, 2022
androidx.room:room-*:2.5.0-alpha03
is released. Version 2.5.0-alpha03 contains these commits.
নতুন বৈশিষ্ট্য
- Added a new shortcut annotation,
@Upsert
, which attempts to insert an entity when there is no uniqueness conflict or update the entity if there is a conflict. ( I7aaab , b/241964353 )
বাগ ফিক্স
- Room will now throw a
SQLiteConstraintException
instead of aIllegalStateException
during an auto-migration foreign key constraint check. ( I328dd ) - Fix a Kotlin source incompatible change for getter / properties of
getOpenHelper
,getQueryExecutor
andgetTransactionExecutor
. ( Iad0ac )
Version 2.5.0-alpha02
জুন 1, 2022
androidx.room:room-*:2.5.0-alpha02
is released. Version 2.5.0-alpha02 contains these commits.
নতুন বৈশিষ্ট্য
- New
room-paging
artifactsroom-paging-rxjava2
,room-paging-rxjava3
androom-paging-guava
have been added for support in Room Paging.( 41a1d4 , b/203666906 ),( eb6098 , b/203666906 ),( 1b9ae4 , b/203666906 )
এপিআই পরিবর্তন
- All of
room-runtime
has been converted from Java to Kotlin. ( If2069 , b/206859668 ),( Ie4b55 , b/206859668 ), ( I697ee , b/206859668 ), ( I96c25 , b/206859668 )Note: You may encounter source incompatibility issues due to the library conversion to Kotlin. If your code was in Kotlin and calling the old version of Room, the new version will need to handle these cases. For example, a known source incompatible change is that in
InvalidationTracker
you will now need to declareonInvalidate()
inObserver
to have a param of typeSet
and notMutableSet
. - Added APIs for providing key and value tables names for disambiguation in
@MapInfo
( Icc4b5 ) - Fix a source compatibility issue to re-allow
@Ignore
in property getters. ( Ifc2fb )
বাগ ফিক্স
- Duplicate column resolution heuristic algorithm. Room will now attempt to resolve ambiguous columns in a multimap query. This allows for JOINs with tables containing same-name tables to be correctly mapped to a result data object. ( I4b444 , b/201306012 , b/212279118 )
Version 2.5.0-alpha01
23 ফেব্রুয়ারি, 2022
androidx.room:room-*:2.5.0-alpha01
is released. Version 2.5.0-alpha01 contains these commits.
এপিআই পরিবর্তন
- Fixed an issue where Room
@IntDef
usage were not being enforced in Kotlin sources. ( I75f41 , b/217951311 ) - Fixed a source compatibility issue to re-allow
@Query
in property getters. ( I0a09b ) - Converted room-common from Java to Kotlin. ( I69c48 , b/206858235 )
Note: You may encounter source incompatibility issues as some properties have been moved into companion objects during the library conversion to Kotlin. If your code was in Kotlin and calling the old version of Room, the new version will need the ".Companion" suffix when accessing these properties.
- Converted room-migration from Java to Kotlin. ( I2724b , b/206858622 )
- Converted
paging
related files inroom-runtime
from Java to Kotlin. ( I82fc8 , b/206859668 ) - Added API for multi-process lock and usage at the FrameworkSQLite* level, to protect multi-process 1st time database creation and migrations. ( Ied267 , b/193182592 )
বাগ ফিক্স
- Added support for internal properties in Kotlin sources. This is a slight behavior change in Room where it will use the source name of functions while matching them to properties as getters/setters (previously, it was using JVM name of the function which is different for internal functions/properties). If you are using custom
@JvmName
annotations to match getters/setters to private properties, please double check the generated code after the update ( If6531 , b/205289020 )
সংস্করণ 2.4.3
সংস্করণ 2.4.3
জুলাই 27, 2022
androidx.room:room-*:2.4.3
is released. Version 2.4.3 contains these commits.
বাগ ফিক্স
- Fixed an issue that would cause Room to not recognize suspend functions in Kotlin 1.7 ( b/236612358 )
সংস্করণ 2.4.2
সংস্করণ 2.4.2
23 ফেব্রুয়ারি, 2022
androidx.room:room-*:2.4.2
is released. Version 2.4.2 contains these commits.
বাগ ফিক্স
- Fix an issue generating code for a Dao
@Transaction
suspend function with a body that generates a default interface method due to compilation with-Xjvm-default=all
or equivalent. ( Ia4ce5 ) - Resolving a bug where Room generates code for a
Array<ByteArray>
return type query method. ( If086e , b/213789489 )
সংস্করণ 2.4.1
সংস্করণ 2.4.1
জানুয়ারী 12, 2022
androidx.room:room-*:2.4.1
is released. Version 2.4.1 contains these commits.
বাগ ফিক্স
- Added support for internal properties in Kotlin sources. This is a slight behavior change in Room where it will use the source name of functions while matching them to properties as getters/setters (previously, it was using JVM name of the function which is different for internal functions/properties). If you are using custom
@JvmName
annotations to match getters/setters to private properties, please double check the generated code after the update ( If6531 , b/205289020 )
সংস্করণ 2.4.0
সংস্করণ 2.4.0
15 ডিসেম্বর, 2021
androidx.room:room-*:2.4.0
is released. Version 2.4.0 contains these commits.
Important changes since 2.3.0
- Auto Migrations : Room now offers an API for automatically generating migrations as long as schemas are exported. To let Room know that it should generate an auto-migration a new property
@Database#autoMigrations
can be used to declare the versions to auto-migrate from and to. When Room needs additional information regarding tables and column renames or deletes, then the@AutoMigration
annotation can declare a specification class containing such inputs. See the@AutoMigration
documentation for more details. - Dependency Injection in Auto Migrations :
@ProvidedAutoMigrationSpec
is a new API for declaring that anAutoMigrationSpec
will be provided at runtime viaRoomDatabase.Builder#addAutoMigrationSpec()
. This allows for a dependency injection framework to provide such specs when they need complex dependencies. - Migration Test Helper Support for Auto Migrations : Room's
MigrationTestHelper
was updated to support auto migrations by providing a new constructor API that receives the database class under test. This allows the helper to automatically add auto migrations the same way duringrunMigrationsAndValidate
. - Room-Paging Support :
androidx.room:room-paging
is released, providing native Paging 3.0 support for Room queries returningandroidx.paging.PagingSource
. - Relational Query Methods : Room now supports multimap return types
@Dao
methods, useful for JOIN statements. The supported types of multimaps areMap
,SparseArray
,LongSparseArray
, along with Guava'sImmutableMap
,ImmutableSetMultimap
andImmutableListMultimap
.
Version 2.4.0-rc01
ডিসেম্বর 1, 2021
androidx.room:room-*:2.4.0-rc01
is released. Version 2.4.0-rc01 contains these commits.
নতুন বৈশিষ্ট্য
- Update Room's dependency on KSP to
1.6.0-1.0.1
to support Kotlin 1.6
Version 2.4.0-beta02
17 নভেম্বর, 2021
androidx.room:room-*:2.4.0-beta02
is released. Version 2.4.0-beta02 contains these commits.
নতুন বৈশিষ্ট্য
- We've added support for SparseArray and LongSparseArray in @MapInfo. ( Ic91a2 b/138910317 )
বাগ ফিক্স
- We've added a new TypeConverter analyzer that takes nullability information in types into account. As this information is only available in KSP, it is turned on by default only in KSP. If it causes any issues, you can turn it off by passing room.useNullAwareTypeAnalysis=false to the annotation processor. If that happens, please a file bug as this flag will be removed in the future. With this new TypeConverter analyzer, it is suggested to only provide non-null receiving TypeConverters as the new analyzer has the ability to wrap them with a null check. Note that this has no impact for users using KAPT or Java as the annotation processors (unlike KSP), don't have nullability information in types. ( Ia88f9 , b/193437407 )
- Fix a bug where Room would fail to compile with a SQL error when an FTS entity declared to use the ICU tokenizer. ( I00db9 , b/201753224 )
- Resolved issue in auto migrations regarding a new column added to an embedded Entity between versions. ( I5fcb1 b/193798291 )
- We have resolved an issue regarding the relational query method return types in LEFT JOIN queries. With these changes, in the case where a 1-many mapping is present, the collection returned for a key will not include the invalid value object if it is not found in the cursor. If no valid values are found, then a key will be mapped to an empty collection. ( Id5552 b/201946438 )
- Resolved the auto migration issue where SQLite keywords failed to be escaped in column names. ( Idbed4 b/197133152 )
Version 2.4.0-beta01
13 অক্টোবর, 2021
androidx.room:room-*:2.4.0-beta01
is released. Version 2.4.0-beta01 contains these commits.
বাগ ফিক্স
- Fixed an issue with auto-migrations not adding new columns when another table in the same auto-migration also had a new column with the same name. ( Ia5db5 , b/200818663 )
- The PagingSource implementation generated by room-paging now uses the
queryExecutor
passed throughRoomDatabase.Builder
, so it can be overridden, instead ofDispatchers.IO
previously. ( Iae259 )
Version 2.4.0-alpha05
29 সেপ্টেম্বর, 2021
androidx.room:room-*:2.4.0-alpha05
is released. Version 2.4.0-alpha05 contains these commits.
নতুন বৈশিষ্ট্য
- Added a built-in type converter for UUID . ( I671e8 , b/73132006 )
এপিআই পরিবর্তন
Added a new property to the TypeConverters annotation to let developers disable built-in Enum and UUID converters. By default, these converters are on but you can disable them for a certain scope, or for the whole database. See TypeConverters documentation for details. ( 36ae9e , b/195413406 )
Supporting non-POJO keys/values for Multimap return types in DAOs via the
@MapInfo
annotation. ( I4d704 )
@MapInfo
will be required when the key or value column of the map are from a single column. উদাহরণ দেখুন:
@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>
- Make
room-paging
a required artifact when using Paging3 with Room. ( Ieaffe )
বাগ ফিক্স
- Fix an issue where multimap queries results were not correctly ordered when the query contained an ORDER BY clause of a column from the map's key. ( I6b887 )
External Contribution
- Added new API to specify index order in @Index. Thanks to Nikita Zhelonkin. ( I033fc )
Version 2.4.0-alpha04
জুলাই 21, 2021
androidx.room:room-*:2.4.0-alpha04
is released. Version 2.4.0-alpha04 contains these commits.
নতুন বৈশিষ্ট্য
Room now supports multimap return types
@Dao
methods, useful for JOIN statements. The supported types of multimaps areMap
along with Guava'sImmutableMap
,ImmutableSetMultimap
andImmutableListMultimap
.The following are examples of multimap queries:
One-to-One Relation Map
@Query("SELECT * FROM Song JOIN Artist ON Song.artistId = Artist.artistId") fun getSongAndArtist(): Map<Song, Artist>
One-to-Many Relation Map (Standard multimap)
@Query("SELECT * FROM Artist JOIN Album ON Artist.id = Album.artistId") fun getArtistAndAlbums(): Map<Artist, List<Album>>
The multimap result can also be wrapped in the supported async return types, such as
LiveData
, Rx'sObservable
, or coroutinesFlow
.
Room-Paging
androidx.room:room-paging
is released, providing native Paging 3.0 support for Room queries returningandroidx.paging.PagingSource
.@Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }
This artifact replaces the
androidx.paging.PagingSource
implementation generated by Room with one built on top of Paging 3.0 APIs. The new PagingSource implementation parses keys differently, so any key manually supplied to Room's PagingSource would need to account for this behavior change, including the initialKey passed via Pager's constructor. Pages will start loading from theKey
withKey
being the first loaded item. This deviates from existing behavior whereLoadParams.Refresh.Key
is treated as the user's scroll position and items are loaded both before and after the key.The artifact is optional and opting out will fallback to existing support for Paging 3.0 that was introduced in Room 2.3. However, this artifact will become non-optional in future release for those using Room with Paging 3.0. To opt-in, add the new room-paging artifact to your classpath. If you are using Gradle, you can add the following snippet to your build.gradle:
dependency { implementation("androidx.room:room-paging:2.4.0-alpha04") }
বাগ ফিক্স
- Fix an issue in auto migrations regarding handling foreign key violations. ( b/190113935 )
Version 2.4.0-alpha03
16 জুন, 2021
androidx.room:room-*:2.4.0-alpha03
is released. Version 2.4.0-alpha03 contains these commits.
এপিআই পরিবর্তন
- Update Room's
MigrationTestHelper
to support auto migrations by providing a new constructor API that receives the database class under test. This allows the helper to automatically add auto migrations the same way duringrunMigrationsAndValidate
.
বাগ ফিক্স
Fixed an issue with Room's SQLite native library to support Apple's M1 chips. ( b/174695268
Fixed an issue where Room would not error out when the return type of a @Transaction function was a Flow ( I56ddd , b/190075899 )
Fix an issue in auto migrations regarding indices. b/177673291
Dependency Updates
- Room's KSP support now depends on KSP
1.5.10-1.0.0-beta01
. ( 1ecb11 , b/160322705 )
Version 2.4.0-alpha02
5 মে, 2021
androidx.room:room-*:2.4.0-alpha02
is released. Version 2.4.0-alpha02 contains these commits.
এপিআই পরিবর্তন
-
@ProvidedAutoMigrationSpec
is a new API for declaring that anAutoMigrationSpec
will be provided at runtime viaRoomDatabase.Builder#addAutoMigrationSpec()
. This allows for a dependency injection framework to provide such specs when they need complex dependencies.
বাগ ফিক্স
- Fix an issue with auto migrations where
@DatabaseView
s where not being properly re-created.
External Contribution
- Fix an issue in Room's
JournalMode.TRUNCATE
where theInvalidationTracker
callback was sometimes being invoked invalidly, too late, or not at all. Thanks toUli Bubenheimer | bubenheimer@users.noreply.github.com
( b/154040286 )
Version 2.4.0-alpha01
21 এপ্রিল, 2021
androidx.room:room-*:2.4.0-alpha01
is released. Version 2.4.0-alpha01 contains these commits.
নতুন বৈশিষ্ট্য
- Auto Migrations : Room now offers an API for automatically generating migrations as long as schemas are exported. To let Room know that it should generate an auto-migration a new property
@Database#autoMigrations
can be used to declare the versions to auto-migrate from and to. When Room needs additional information regarding tables and column renames or deletes, then the@AutoMigration
annotation can declare a specification class containing such inputs. See the@AutoMigration
documentation for more details.
বাগ ফিক্স
- Fix an issue where
defaultValue
with extra parenthesis were being incorrectly validated by Room's schema validation. b/182284899
সংস্করণ 2.3.0
সংস্করণ 2.3.0
21 এপ্রিল, 2021
androidx.room:room-*:2.3.0
is released. Version 2.3.0 contains these commits.
Important changes since 2.2.0
- Built-in Enum Support : Room will now default to using an Enum to String and vice versa type converter if none is provided. If a type converter for an enum already exists, Room will prioritize using it over the default one.
- Query Callback : Room now offers a general callback API RoomDatabase.QueryCallback, for when queries are about to execute, which can be useful for logging in debug builds. The callback can be set via
RoomDatabase.Builder#setQueryCallback()
. - Pre-packaged Improvement : Room now has APIs for creating a database using a pre-packaged database read from an input stream. This allows for cases such as when the pre-package database is gzipped.
- Provided Type Converters : Room now has APIs for providing instances of type converters such that the app can control their initialization. To mark a type converter that will be provided to Room use the new annotation @ProvidedTypeConverter.
- RxJava3 Support : Room now supports RxJava3 types. Similar to RxJava2 you can declare DAO methods whose return type are Flowable, Single, Maybe and Completable. Additionally a new artifact
androidx.room:room-rxjava3
is available to support RxJava3. - Paging 3.0 Support : Room will now support generating implementations for
@Query
annotated methods whose return type isandroidx.paging.PagingSource
.
Version 2.3.0-rc01
24 মার্চ, 2021
androidx.room:room-*:2.3.0-rc01
is released. Version 2.3.0-rc01 contains these commits.
বাগ ফিক্স
- Fix an issue that prevented Coroutine Flow queries created by Room to be consumed in a suspending
withTransaction
block. ( I797bf )
Version 2.3.0-beta03
10 মার্চ, 2021
androidx.room:room-*:2.3.0-beta03
is released. Version 2.3.0-beta03 contains these commits.
নতুন বৈশিষ্ট্য
- Added incremental compilation support for KSP. ( I031c1 , b/176453350 )
বাগ ফিক্স
- Fixed a bug where creating PagingSource on the main thread could trigger an ANR. ( I42b74 , b/181221318 )
- Fixed
@ExperimentalRoomApi
visibility to be public instead of package private. ( b/181356119 )
External Contribution
- Allow Room to accept a POJO return type in a
@Query
annotated DAO method when it is also annotated with@SkipQueryVerification
. Room will do a best-effort to convert the result of the query to the POJO return type the same way it is done for a@RawQuery
annotated DAO method. Thanks to 'Markus Riegel | hey@marcorei.com'. ( I45acb )
Version 2.3.0-beta02
18 ফেব্রুয়ারি, 2021
androidx.room:room-*:2.3.0-beta02
is released. Version 2.3.0-beta02 contains these commits.
নতুন বৈশিষ্ট্য
Room now has experimental support for Kotlin Symbol Processing KSP .
KSP is a replacement for KAPT to run annotation processors natively on the Kotlin compiler, significantly reducing build times.
To use Room with KSP, you can apply the KSP Gradle plugin and replace the
kapt
configuration in your build file withksp
. For example, instead ofkapt 'androidx.room:room-compiler:2.3.0-beta02'
useksp 'androidx.room:room-compiler:2.3.0-beta02'
. See the KSP documentation for more details.Note that since KSP is experimental, it is recommended to still use KAPT for production code. The reduction of build times is only applicable if there are no other processors that use KAPT. See b/160322705 for known issues.
Version 2.3.0-beta01
জানুয়ারী 27, 2021
androidx.room:room-*:2.3.0-beta01
is released. Version 2.3.0-beta01 contains these commits.
নতুন বৈশিষ্ট্য
- Auto Closable Databases : Room now has the ability to close databases that are not accessed after a given amount of time. This is an experimental feature and can be enabled by calling
RoomDatabase.Builder#setAutoCloseTimeout()
. This feature is useful for applications with multiple databases.
বাগ ফিক্স
- Fix an issue where Dao methods with multiple
@Update
or@Delete
methods with different conflict strategies would generate code with only one of the strategies, effectively ignoring the defined one. ( /I0b90d , b/176138543 )
Version 2.3.0-alpha04
16 ডিসেম্বর, 2020
androidx.room:room-*:2.3.0-alpha04
is released. Version 2.3.0-alpha04 contains these commits.
নতুন বৈশিষ্ট্য
- Room now offers a general callback API
RoomDatabase.QueryCallback
, for when queries are about to execute, which can be useful for logging in debug builds. The callback can be set viaRoomDatabase.Builder#setQueryCallback()
. ( Iaa513 , b/174478034 , b/74877608 ) - Room will now default to using an Enum to String and vice versa type converter if none is provided. If a type converter for an enum already exists, Room will prioritize using it over the default one. ( b/73132006 )
পরিচিত সমস্যা
- If a one-way type converter for reading already exists for the Enum, Room might accidentally use the built-in String to Enum converter which might not be desired. This is a known issue and can be fixed by making it a two-way converter. See: b/175707691
বাগ ফিক্স
- Fixed an issue where Room would incorrectly disabled incremental annotation processing in newer JDK versions. ( b/171387388 )
- Fixed an issue with Room finding the generated class when multiple class loaders are used. Thanks for the fix 'Serendipity | 892449346@qq.com'! ( b/170141113 )
- Fixed an issue where Room would generate incorrect code when a Kotlin
@Dao
had a base class whose generics are primitives in the JVM. ( b/160258066 )
External Contribution
- Room will now default to using
beginTransactionNonExclusive
if WAL mode is enabled and API is 16 or more. Thanks to 'Ahmed I. Khalil | ahmedibrahimkhali@gmail.com'! ( b/126258791 )
Version 2.3.0-alpha03
অক্টোবর 14, 2020
androidx.room:room-*:2.3.0-alpha03
is released. Version 2.3.0-alpha03 contains these commits.
নতুন বৈশিষ্ট্য
Room now has APIs for providing instances of type converters such that the app can control their initialization. To mark a type converter that will be provided to Room use the new annotation
@ProvidedTypeConverter
. Thanks to 'mzgreen yairobbe@gmail.com '. ( Ie4fa5 , b/121067210 )Room now has APIs for creating a database using a pre-packaged database read from an input stream. This allows for cases such as when the pre-package database is gzipped. Thanks to 'Ahmed El-Helw ahmedre@gmail.com ' ( 3e6792 , b/146911060 )
এপিআই পরিবর্তন
Added missing target to
@ForeignKey
annotation preventing its usage outside of the@Entity
annotation. ( Iced1e )The field
mCallbacks
inRoomDatabase.java
is now hidden. ( d576cb , b/76109329 )
বাগ ফিক্স
Update to TypeConverters documentation to clarify that TypeConverters can only be used to convert columns / fields and not rows. ( I07c56 , b/77307836 )
Update to the DaoProcessor to fix compiler error on Dao with a generic super type with Kotlin "primitives". ( Ice6bb , b/160258066 )
Update add/remove observer methods documentation to clarify threading ( Ifd1d9 , b/153948821 )
Fix an issue with Room incorrectly validating FTS tables that declared their rowid column. ( d62ebc , b/145858914 )
External Contributions
Fix upper/lowercase locale issues related to Turkish ( 5746e3 ), b/68159494
Replace the
ConcurrentHashMap
insideRoomDatabase
withCollections.synchronizedMap()
to avoid issues on Android Lollipop ( d1cfc7 , b/162431855 )Add a onOpenPrepackagedDatabase callback for when a prepackaged DB is copied. ( I1ba74 , b/148934423 )
Version 2.3.0-alpha02
22 জুলাই, 2020
androidx.room:room-*:2.3.0-alpha02
is released. Version 2.3.0-alpha02 contains these commits.
নতুন বৈশিষ্ট্য
- RxJava3 Support : Room now supports RxJava3 types. Similar to RxJava2 you can declare DAO methods whose return type are Flowable, Single, Maybe and Completable. Additionally a new artifact
androidx.room:room-rxjava3
is available to support RxJava3. ( b/152427884 )
এপিআই পরিবর্তন
- Declaring a
@TypeConverter
in Kotlin Object class is now supported. ( b/151110764 ) -
Room
incremental annotation processing option is now ON by default. ( b/112110217 )
Version 2.3.0-alpha01
জুন 10, 2020
androidx.room:room-*:2.3.0-alpha01
is released. Version 2.3.0-alpha01 contains these commits.
নতুন বৈশিষ্ট্য
Paging 3.0 Support : Room will now support generating implementations for
@Query
annotated methods whose return type isandroidx.paging.PagingSource
.@Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun pagingSource(): PagingSource<Int, User> }
এপিআই পরিবর্তন
-
@RewriteQueriesToDropUnusedColumns
is a new convenient annotation that makes Room rewrite the '*' projection in a query such that unused columns in the result are removed. - The processor option
room.expandProjection
is now deprecated. Use@RewriteQueriesToDropUnusedColumns
as a replacement for Room optimizing queries with star projections. Note that@RewriteQueriesToDropUnusedColumns
does not replace the column conflict solutionroom.expandProjection
offered with regards to return types that contained@Embedded
fields.
বাগ ফিক্স
- Fixed a bug where Room would not correctly detect the JDK version used to enable incremental annotation processor. Thanks to Blaz Solar (me@blaz.solar) ( b/155215201 )
- Room now embeds its ANTLR dependency with the annotation processor to avoid version conflicts with other processors that also use ANTLR. ( b/150106190 )
সংস্করণ 2.2.6
সংস্করণ 2.2.6
16 ডিসেম্বর, 2020
androidx.room:room-*:2.2.6
is released. Version 2.2.6 contains these commits.
বাগ ফিক্স
- Fixed an issue where Room would incorrectly disabled incremental annotation processing in newer JDK versions. ( b/171387388 )
সংস্করণ 2.2.5
সংস্করণ 2.2.5
18 মার্চ, 2020
androidx.room:room-*:2.2.5
is released. Version 2.2.5 contains these commits.
বাগ ফিক্স
- Make
MultiInstanceInvalidationService
directBootAware. Thanks to 'Mygod contact-git@mygod.be ' ( b/148240967 ) - Fixed a bug that would cause a crash when multi-instance invalidation was enabled and the database contained a FTS entity. ( b/148969394 )
- Fixed an issue when loading the SQLite native libraries in the Room annotation processor that would cause the compiler to crash due to parallel compilations. ( 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
, and androidx.room:room-testing:2.2.4
are released. Version 2.2.4 contains these commits.
বাগ ফিক্স
- Fixed an issue with suspending transactions where they would deadlock if the coroutine was canceled quickly before the transaction actually started. ( b/148181325 )
- Fixed an issue with the @Generated being wrongly used when building with JDK 9. ( b/146538330 )
- Fixed an issue where Room would generate incorrect code when a DAO interface in Kotlin had a concrete function. ( b/146825845 )
সংস্করণ 2.2.3
সংস্করণ 2.2.3
18 ডিসেম্বর, 2019
androidx.room:room-*:2.2.3
is released. Version 2.2.3 contains these commits .
বাগ ফিক্স
- Fixed a bug where Room would fail to validate a database that had not gone through any migration and contained a legacy hash with indices in its schema. ( b/139306173 )
সংস্করণ 2.2.2
সংস্করণ 2.2.2
নভেম্বর 20, 2019
androidx.room:room-*:2.2.2
is released. Version 2.2.2 contains these commits .
বাগ ফিক্স
- Fixed a bug where collecting a one-to-one relationship with more than 999 rows would cause Room to return null relating items. ( b/143105450 )
সংস্করণ 2.2.1
সংস্করণ 2.2.1
23 অক্টোবর, 2019
androidx.room:room-*:2.2.1
is released. Version 2.2.1 contains these commits .
বাগ ফিক্স
- Fixed a bug where Room would incorrectly warn about
CURSOR_MISMATCH
with the compiler optionexpandProjection
turned ON. ( b/140759491 ) - Added a retry mechanism for handling the missing native library used for verifying queries during compile time.
সংস্করণ 2.2.0
সংস্করণ 2.2.0
9 অক্টোবর, 2019
androidx.room:room-*:2.2.0
is released. Version 2.2.0 contains these commits .
Important changes since version 2.1.0
- Pre-packaged Database : Two new APIs in
RoomDatabase.Builder
are now available for creating aRoomDatabase
given an already populated database file.createFromAsset()
is for when the pre-populated database file is in the assets folder of the APK, whilecreateFromFile()
is for when the file is in an arbitrary location. The usages of these API change the behaviour of destructive migrations such that during a fallback migration, Room will try to re-copy the pre-populated database if available, otherwise it fallbacks to just dropping and re-creating all tables. b/62185732 - Schema Default Values :
@ColumnInfo
now has a new propertydefaultValue
that can be used to specify the default value of a column. Default values are part of a database schema and will be validated during migrations if specified. b/64088772 - Many-to-Many Relations :
@Relation
now has a new propertyassociateBy
, that takes in a new annotation@Junction
, used to declare a relation that needs to be satisfied via a junction table (also known as a join table). b/69201917 - One-to-One Relations : The restriction in POJO fields annotated with
@Relation
to be of typeList
orSet
has been lifted, effectively allowing single-value relations to be represented. b/62905145 - Target Entity : The DAO annnotations
@Insert
,@Update
and@Delete
now has a new propertytargetEntity
, that allows specifying the target table the DAO method is meant to act on. This allows for the parameters of those DAO methods to be arbitrary POJOs which will be interpreted as partial entities. In practice, this allows partial inserts, deletes and updates. b/127549506 - Coroutines Flow :
@Query
DAO methods can now be of return typeFlow<T>
. The returned Flow will re-emit a new set of values if the observing tables in the query are invalidated. Declaring a DAO function with aChannel<T>
return type is an error, Room instead encourages you to useFlow
and then use the neighboring functions to convert theFlow
into aChannel
. b/130428884 - Gradle Incremental Annotation Processor : Room is now a Gradle isolating annotation processor and incrementability can be enabled via the processor option
room.incremental
. See Room Compiler Options for more information. If you encounter any issues please file a bug here . We plan to enable incrementability by default in a future, stable version. b/112110217 - Expanding Projections : A new experimental compiler option
room.expandProjection
was added that causes Room to rewrite a query with a star projection to only contain the columns in the returning type POJO. For example, for a DAO method with@Query("SELECT * FROM Song")
that returns a POJO namedSongIdAndTitle
with only two fields. Then Room will rewrite the query toSELECT id, title FROM Song
such that the minimum set of columns to satisfy the return type are fetched. This essentially eliminates theCURSOR_MISMATCH
warning that is presented when the query returns extra columns that do not match any field in the returning POJO type.
Version 2.2.0-rc01
5 সেপ্টেম্বর, 2019
androidx.room:room:2.2.0-rc01
is released. The commits included in this version can be found here .
No public changes since Room 2.2.0-beta01
.
Version 2.2.0-beta01
22 আগস্ট, 2019
androidx.room:room-*:2.2.0-beta01
is released. The commits included in this version can be found here .
বাগ ফিক্স
- Fixed a bug where a Coroutine Flow query would stop reemitting new values after a certain time. ( b/139175786 )
- Fixed a bug where Room would not accept a legacy schema hash code while opening a database that had not gone a migration since Room 1.0, causing a runtime crash due to invalid schema. ( b/139306173 )
Version 2.2.0-alpha02
7 আগস্ট, 2019
androidx.room:room-*:2.2.0-alpha02
is released. The commits included in this version can be found here .
নতুন বৈশিষ্ট্য
- Coroutines Flow :
@Query
DAO methods can now be of return typeFlow<T>
. The returned Flow will re-emit a new set of values if the observing tables in the query are invalidated. Declaring a DAO function with aChannel<T>
return type is an error, Room instead encourages you to useFlow
and then use the neighboring functions to convert theFlow
into aChannel
. b/130428884 - Expanding Projections : A new experimental compiler option
room.expandProjection
was added that causes Room to rewrite a query with a star projection to only contain the columns in the returning type POJO. For example, for a DAO method with@Query("SELECT * FROM Song")
that returns a POJO namedSongIdAndTitle
with only two fields. Then Room will rewrite the query toSELECT id, title FROM Song
such that the minimum set of columns to satisfy the return type are fetched. This essentially eliminates theCURSOR_MISMATCH
warning that is presented when the query returns extra columns that do not match any field in the returning POJO type. -
onDestructiveMigrate
is a new callback API added toRoomDatabase.Callback
for when Room destructively migrates a database. b/79962330
বাগ ফিক্স
- Fixed a bug where Room would generate incorrect code using a method as field setter when the field is protected. b/136194628
- Fixed a bug that caused the InvalidationTracker to throw a NPE in a second process when multi-instance invalidation was enabled and the invalidation Service was killed. b/137454915
- Fixed a bug where Room would not correctly identify the return type of an inherited suspend function annotated with
@RawQuery
. b/137878827 - Updated the generated code for
@Relation
when the relating key is of type BLOB to use aByteBuffer
that is comparable. b/137881998 - Fixed a bug where Room would complain about missing setters on POJOs used as partial entity parameters of
@Insert
,@Update
and@Delete
. b/138664463 - Fixed a bug where Room would complain about missing getters & setters for an ignored column via
@Entity
when the entity class was used in certain DAO methods. b/138238182 - Fixed a bug where Room would not correctly convert named binding args to positional args causing a runtime exception when executing a query with re-used parameters. b/137254857
Version 2.2.0-alpha01
10 জুলাই, 2019
নতুন বৈশিষ্ট্য
- Pre-packaged Database : Two new APIs in
RoomDatabase.Builder
are now available for creating aRoomDatabase
given an already populated database file.createFromAsset()
is for when the pre-populated database file is in the assets folder of the APK, whilecreateFromFile()
is for when the file is in an arbitrary location. The usages of these API change the behaviour of destructive migrations such that during a fallback migration, Room will try to re-copy the pre-populated database if available, otherwise it fallbacks to just dropping and re-creating all tables. b/62185732 - Schema Default Values :
@ColumnInfo
now has a new propertydefaultValue
that can be used to specify the default value of a column. Default values are part of a database schema and will be validated during migrations if specified. b/64088772Note: If your database schema already has default values, such as those added via
ALTER TABLE x ADD COLUMN y INTEGER NOTNULL DEFAULT z
, and you decide to define default values via@ColumnInfo
to the same columns, then you might need to provide a migration to validate the unaccounted default values. See Room Migrations for more information. - Many-to-Many Relations :
@Relation
now has a new propertyassociateBy
, that takes in a new annotation@Junction
, used to declare a relation that needs to be satisfied via a junction table (also known as a join table). b/69201917 - One-to-One Relations : The restriction in POJO fields annotated with
@Relation
to be of typeList
orSet
has been lifted, effectively allowing single-value relations to be represented. b/62905145 - Target Entity : The DAO annnotations
@Insert
,@Update
and@Delete
now has a new propertytargetEntity
, that allows specifying the target table the DAO method is meant to act on. This allows for the parameters of those DAO methods to be arbitrary POJOs which will be interpreted as partial entities. In practice, this allows partial inserts, deletes and updates. b/127549506 - Gradle Incremental Annotation Processor : Room is now a Gradle isolating annotation processor and incrementability can be enabled via the processor option
room.incremental
. See Room Compiler Options for more information. If you encounter any issues please file a bug here . We plan to enable incrementability by default in a future, stable version. b/112110217
বাগ ফিক্স
- Room will no longer propagate the
EmptySetResultException
to the global error handler when the Rx stream of a query has been disposed before the query is complete. b/130257475 - Fixed a bug where Room would show an incorrect error message when a suspend DAO function annotated with
@RawQuery
didn't have a return type. b/134303897 - Room will no longer generate DAO adapters with raw types. b/135747255
সংস্করণ 2.1.0
সংস্করণ 2.1.0
13 জুন, 2019
Room 2.1.0 is released with no changes from 2.1.0-rc01
. The commits included in the version can be found here .
Important changes since 2.0.0
- FTS : Room now supports entities with a mapping FTS3 or FTS4 table. Classes annotated with
@Entity
can now be additionally annotated with@Fts3
or@Fts4
to declare a class with a mapping full-text search table. FTS options for further customization are available via the annotation's methods. - Views : Room now supports declaring a class as a stored query, also known as a view , using the
@DatabaseView
annotation. - Couroutines : DAO methods can now be suspend functions. Include
room-ktx
in your dependencies to take advantage of this functionality. The ktx artifact also provides the extension functionRoomDatabase.withTransaction
for performing database transactions within a coroutine. - Auto Value : Room now supports declaring AutoValue annotated classes as entities and POJOs. The Room annotations
@PrimaryKey
,@ColumnInfo
,@Embedded
and@Relation
can now be declared in an auto value annotated class's abstract methods. Note that these annotation must also be accompanied by@CopyAnnotations
for Room to properly understand them. - Additional Async Support : DAO methods annotated with
@Insert
,@Delete
or@Update
, along with@Query
containingINSERT
,DELETE
orUPDATE
statements, now support Rx return typesCompletable
,Single
,Maybe
, and Guava's return typeListenableFuture
, and they can also be suspend functions. -
enableMultiInstanceInvalidation
is a new API inRoomDatabase.Builder
to enable invalidation across multiple instances of RoomDatabase using the same database file. -
fallbackToDestructiveMigrationOnDowngrade
is a new API inRoomDatabase.Builder
to automatically re-create the database if a downgrade happens. -
ignoredColumns
is a new API in the@Entity
annotation that can be used to list ignored fields by name. - Room will now properly use Kotlin's primary constructor in data classes avoiding the need to declare the properties as
vars
.
Version 2.1.0-rc01
29 মে, 2019
বাগ ফিক্স
- Fixed a Room initialization error that might occur due to an already setup temp_store configuration. b/132602198
- Fixed a double quote usage warning for users with SQLite 3.27.0 and above. b/131712640
- Fixed a bug where the InvalidationTracker would cause a crash when multiple invalidation checks would occur in parallel. b/133457594
Version 2.1.0-beta01
7 মে, 2019
androidx.room 2.1.0-beta01
is released with no changes from 2.1.0-alpha07. The commits included in this version can be found here .
Version 2.1.0-alpha07
25 এপ্রিল, 2019
API / Behavior Changes
- The extension function
RoomDatabase.withTransaction
has been changed to no longer take a function block with aCoroutineScope
as receiver. This prevents skipping the additionalcoroutineScope { }
wrapper required to run things in the transaction block concurrently.
বাগ ফিক্স
- Fixed a bug where Room would fail to match a TypeConverter for a Kotlin DAO function containing a parameter of Collection type. b/122066791
Version 2.1.0-alpha06
22 মার্চ, 2019
API / Behavior Changes
- Async transaction queries are now serialized such that Room will not use more than one thread for executing database transactions.
RoomDatabase.Builder.setTransactionExecutor(Executor)
was added to allow configuring the executor to be used for transactions. -
RoomDatabase.runInTransaction(Callable)
will no longer wrap checked exceptions into RuntimeExceptions. b/128623748
বাগ ফিক্স
- Fixed a bug where the invalidation tracker would stop observing a content table if observers for both the content table and an external content FTS table were added. b/128508917
- Updated
Room
SQLite grammar to match SQLite 3.24.0. b/110883668
Version 2.1.0-alpha05
13 মার্চ, 2019
নতুন বৈশিষ্ট্য
- The extension function
RoomDatabase.withTransaction
allows you to safely perform database transactions within a coroutine. Room extensions functions along with coroutines support are available in theroom-ktx
artifact. - Non-abstract DAO methods annotated with
@Transaction
can now be suspend functions. b/120241587
API / Behavior Changes
- The artifact
room-coroutines
has been renamed toroom-ktx
following the same naming as other androidx artifacts. -
beginTransaction
,setTransactionSuccessful
andendTransaction
inRoomDatabase
have been deprecated in favor ofrunInTransaction
and theroom-ktx
extension functionwithTransaction
.
বাগ ফিক্স
- Fixed a bug where tokenizer arguments were being dropped if the tokenizer used was SIMPLE. b/125427014
- Fixed a bug where Room would fail to correctly identify suspending functions with parameters whos type were an inner class. b/123767877
- Fixed a bug where deferred
@Query
DAO method withINSERT
,UPDATE
orDELETE
statements were eagerly preparing the query in the main thread. b/123695593 - Fixed various bugs where Room would generate incorrect code for certain suspend functions. b/123466702 and b/123457323
- Fixed a bug where deprecated usage of methods were not being correctly suppressed in generated code. b/117602586
- Updated Room dependency of androidx.sqlite to 1.0.2 which contain fixes for correctly handling corrupted databases. b/124476912
পরিচিত সমস্যা
- Room 2.1.0-alpha05 depends on the
kotlinx-metadata-jvm
artifact which is not currently available in Maven Central ( KT-27991 ). This dependency can be resolved by addingmaven { url "https://kotlin.bintray.com/kotlinx/" }
to your project repositories.
Version 2.1.0-alpha04
25 জানুয়ারী, 2019
নতুন বৈশিষ্ট্য
- DAO methods annotated with
@Query
containingINSERT
,UPDATE
orDELETE
statements can now return async typesSingle
,Mayble
,Completable
andListenableFuture
. Additionally they can also be suspend functions. b/120227284
API / Behavior Changes
- Room will now throw an error if a non-abstract DAO method annotated with
@Transaction
returns an async type such asSingle
,Mayble
,Completable
,LiveData
orListenableFuture
. Since transactions are thread confined it is currently impossible for Room to begin and end a transaction around a function that may peform queries in different threads. b/120109336 -
OnConflictStrategy.FAIL
andOnConflictStrategy.ROLLBACK
have been@Deprecated
since they do not behave as intended with Android's current SQLite bindings. b/117266738
বাগ ফিক্স
- Fixed a bug where Room wouldn't correctly use the TypeConverter of a return type if the DAO method was a suspend function. b/122988159
- Fixed a bug where Room would incorrectly identify inherited suspend functions as non-suspending. b/122902595
- Fixed a bug where Room would generate incorrect code when an
@Embedded
field was in a parent class and used in multiple child classes. b/121099048 - Fixed an issue where the database would deadlock when invoking DAO suspend functions between a
beginTransaction()
andendTransaction()
. b/120854786
Version 2.1.0-alpha03
4 ডিসেম্বর, 2018
এপিআই পরিবর্তন
- The FTS
tokenizer
in@Fts3
/@Fts4
now takes a String instead of an Enum. This allows custom tokenizers to be used by Room. Built-in tokenizers are still defined inFtsOptions
as string constants. b/119234881
নতুন বৈশিষ্ট্য
- Couroutines : DAO methods can now be suspend functions. To support suspend functions in Room a new artifact has been released,
room-coroutines
. b/69474692 - DAO methods annotated with
@Insert
,@Delete
or@Update
now supportListenableFuture
as return type. b/119418331
বাগ ফিক্স
- Fixed a bug where Room would incorrectly attempt to find a constructor with columns in the
ignoredColumns
property of@Entity
. b/119830714 - Fixed a bug where Room would not mark DAO method parameters as final in their generated implementation. b/118015483
- Fixed a bug where
Room
processor would crash when reporting an error on a query with special symbols. b/119520136 - Fixed a bug where Room would decline other various
Collection
implementations as arguments of anIN
expression. b/119884035 - Fixed a bug where LiveData returned from Room would get garbage collected when observed forever causing it to no longer emit new data. b/74477406
- Updated
RoomDatabase
's close lock to reduce lock contention. b/117900450
Version 2.1.0-alpha02
অক্টোবর 30, 2018
নতুন বৈশিষ্ট্য
- Added support for referencing a
@DatabaseView
in a@Relation
. b/117680932
বাগ ফিক্স
- Fixed a bug where Room would perform disk I/O in the main thread when subscribing and disposing from an Rx return type. b/117201279
- Fixed a bug where Room would fail to find an appropriate type converter for a field in a Kotlin entity class. b/111404868
- Fixed a bug where Room would generate incorrect code for a
DAO
interface implementation containing a Kotlin default method that has no arguments. b/117527454 - Updated
Room
SQLite grammar parser, fixing a performance issue that would cause long build times. b/117401230
Version 2.1.0-alpha01
অক্টোবর 8, 2018
নতুন বৈশিষ্ট্য
- FTS : Room now supports entities with a mapping FTS3 or FTS4 table. Classes annotated with
@Entity
can now be additionally annotated with@Fts3
or@Fts4
to declare a class with a mapping full-text search table. FTS options for further customization are available via the annotation's methods. b/62356416 - Views : Room now supports declaring a class as a stored query, also known as a view using the @DatabaseView annotation. b/67033276
- Auto Value : Room now supports declaring AutoValue annotated classes as entities and POJOs. The Room annotations
@PrimaryKey
,@ColumnInfo
,@Embedded
and@Relation
can now be declared in an auto value annotated class' abstract methods. Note that these annotation must also be accompanied by@CopyAnnotations
for Room to properly understand them. b/62408420 - Additional Rx Return Types Support : DAO methods annotated with
@Insert
,@Delete
or@Update
now support Rx return typesCompletable
,Single<T>
andMaybe<T>
. b/63317956 - Immutable Types with
@Relation
: Room previously required@Relation
annotated fields to be settable but now they can be constructor parameters. -
enableMultiInstanceInvalidation
: Is a new API inRoomDatabase.Builder
to enable invalidation across multiple instances of RoomDatabase using the same database file. This multi-instance invalidation mechanism also works across multiple processes. b/62334005 -
fallbackToDestructiveMigrationOnDowngrade
: Is a new API inRoomDatabase.Builder
to automatically re-create the database if a downgrade happens. b/110416954 -
ignoredColumns
: Is a new API in the@Entity
annotation that can be used to list ignored fields by name. Useful for ignoring inherited fields on an entity. b/63522075
API / Behavior Changes
-
mCallback
andmDatabase
inRoomDatabase
are now@Deprecated
and will be removed in the next major version of Room. b/76109329
বাগ ফিক্স
- Fixed two issues where Room wouldn't properly recover from a corrupted database or a bad migration during initialization. b/111504749 and b/111519144
- Room will now properly use Kotlin's primary constructor in data classes avoiding the need to declare the fields as
vars
. b/105769985
সংস্করণ 2.0.0
সংস্করণ 2.0.0
অক্টোবর 1, 2018
androidx.room 2.0.0
is released with no changes from 2.0.0-rc01.
Version 2.0.0-rc01
সেপ্টেম্বর 20, 2018
androidx.room 2.0.0-rc01
is released with no changes from 2.0.0-beta01.
Version 2.0.0-beta01
জুলাই 2, 2018
API / Behavior Changes
- Added
RoomDatabase.Builder.setQueryExecutor()
to allow customization of where queries are run - Added RxJava2
Observable
support - Generated DAO and Database implementations are now final
বাগ ফিক্স
- Specify class/field name in "cannot find getter for field" error b/73334503
- Fixed RoomOpenHelper backwards compatibility with older versions of Room b/110197391
Pre-AndroidX Dependencies
For the pre-AndroidX versions of Room, include these dependencies:
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
Room 1.1.1
is identical to Room 1.1.1-rc1
.
Version 1.1.1-rc1
May 16, 2018 We highly recommend using Room 1.1.1-rc1
instead of 1.1.0
if you are using migrations.
Fixed a bug where Room would not handle post migration initialization properly b/79362399
সংস্করণ 1.1.0
Version 1.1.0-beta3
এপ্রিল 19, 2018
বাগ ফিক্স
- Fix compilation error when a Kotlin POJO references a relation entity that was defined in Java b/78199923
Version 1.1.0-beta2
5 এপ্রিল, 2018
বাগ ফিক্স
Fixed a critical bug in
Room
RxSingle
andMaybe
implementations where it would recycle the query ahead of time, causing problems if you add more than 1 observer to the returnedSingle
orMaybe
instances. b/76031240[RoomDatabase.clearAllTables][ref-clearAllTables] will not
VACUUM
the database if it is called inside a transaction. b/77235565
Version 1.1.0-beta1
21 মার্চ, 2018
এপিআই পরিবর্তন
- Based on API Review feedback,
@RawQuery
does not accept passing aString
as the query parameter anymore. You need to use [SupportSQLiteQuery][ref-SupportSQLiteQuery]. (see [SimpleSQLiteQuery][ref-SimpleSQLiteQuery] to easily create an instance of [SupportSQLiteQuery][ref-SupportSQLiteQuery] with argument support). - RoomDatabase.Builder's [fallbackToDestructiveMigrationFrom][ref-fallbackToDestructiveMigrationFrom] method now accepts
vararg int
instead ofvararg Integer
.
বাগ ফিক্স
- [RoomDatabase.clearAllTables][ref-clearAllTables] now tries to return space back to the operating system by setting a WAL checkpoint and
VACUUM
ing the database. - [
@RawQuery
][ref-RawQuery] now accepts any Pojo for theobservedEntities
property as long as the Pojo references to one or more entities via itsEmbedded
fields orRelation
s. b/74041772 - Paging: Room's DataSource implementation now correctly handles multi-table dependencies (such as relations, and joins). Previously these would fail to trigger new results, or could fail to compile. b/74128314
Version 1.1.0-alpha1
জানুয়ারী 22, 2018
নতুন বৈশিষ্ট্য
-
RawQuery
: This new API allows@Dao
methods to receive the SQL as a query parameter b/62103290 , b/71458963 -
fallBackToDestructiveMigrationsFrom
: This new API inRoomDatabase.Builder
allows for finer grained control over from which starting schema versions destructive migrations are allowed (as compared to fallbackToDestructiveMigration) b/64989640 - Room now only supports newer Paging APIs (alpha-4+), dropping support for the deprecated
LivePagedListProvider
. To use the new Room alpha, you'll need to use pagingalpha-4
or higher, and switch fromLivePagedListProvider
toLivePagedListBuilder
if you haven't already.
বাগ ফিক্স
- Improved support for Kotlin Kapt types. b/69164099
- Order of fields do not invalidate schema anymore. b/64290754