রুম

রুম পারসিসটেন্স লাইব্রেরি SQLite এর উপর একটি অ্যাবস্ট্রাকশন লেয়ার প্রদান করে যাতে SQLite এর পূর্ণ শক্তি ব্যবহার করার সময় আরও শক্তিশালী ডাটাবেস অ্যাক্সেসের অনুমতি দেওয়া হয়।
সর্বশেষ আপডেট স্থিতিশীল রিলিজ মুক্তির প্রার্থী বিটা রিলিজ আলফা রিলিজ
7 আগস্ট, 2024 2.6.1 - - 2.7.0-আলফা06

নির্ভরতা ঘোষণা করা

রুমের উপর নির্ভরতা যোগ করতে, আপনাকে অবশ্যই আপনার প্রকল্পে Google Maven সংগ্রহস্থল যোগ করতে হবে। আরও তথ্যের জন্য Google এর Maven সংগ্রহস্থল পড়ুন।

রুমের নির্ভরতাগুলির মধ্যে রয়েছে টেস্টিং রুম মাইগ্রেশন এবং রুম RxJava

আপনার অ্যাপ বা মডিউলের জন্য build.gradle ফাইলে আপনার প্রয়োজনীয় আর্টিফ্যাক্টগুলির জন্য নির্ভরতা যোগ করুন:

গ্রোভি

dependencies {
    def room_version = "2.6.1"

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

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

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

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

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

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

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

কোটলিন

dependencies {
    val room_version = "2.6.1"

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

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

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

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

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

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

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

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

KAPT প্লাগইন ব্যবহার করার তথ্যের জন্য, KAPT ডকুমেন্টেশন দেখুন।

KSP প্লাগইন ব্যবহারের তথ্যের জন্য, KSP কুইক-স্টার্ট ডকুমেন্টেশন দেখুন।

Kotlin এক্সটেনশন ব্যবহার করার তথ্যের জন্য, ktx ডকুমেন্টেশন দেখুন।

নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, বিল্ড নির্ভরতা যুক্ত করুন দেখুন।

ঐচ্ছিকভাবে, নন-অ্যান্ড্রয়েড লাইব্রেরির জন্য (যেমন জাভা বা কোটলিন শুধুমাত্র গ্রেডল মডিউল) আপনি রুম টীকা ব্যবহার করতে 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-alpha06

7 আগস্ট, 2024

androidx.room:room-*:2.7.0-alpha06 প্রকাশিত হয়েছে। সংস্করণ 2.7.0-alpha06-এ এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • একটি KMP প্রকল্পে একটি RoomDatabase জন্য ইনস্ট্যান্টেশন সেটআপ পরিবর্তন করুন।

Kotlin 2.0 কম্পাইলেশন মডেলের কারণে, instantiateImpl() নামে একটি তৈরি করা ফাংশন উল্লেখ করার কৌশলটি আর কার্যকর। দুটি নতুন API, @ConstructedBy এবং RoomDatabaseConstructor চালু করা হয়েছে যা instantiateImpl() কৌশল প্রতিস্থাপন করে। নতুন কৌশল নিম্নরূপ:

  1. RoomDatabaseConstructor প্রয়োগ করে এমন একটি প্রত্যাশার বস্তুর সংজ্ঞা দিন

      expect object MyDatabaseCtor : RoomDatabaseConstructor<MyDatabase>
    
  2. @ConstructedBy ব্যবহার করে @Database ঘোষণার সাথে বস্তুটিকে লিঙ্ক করুন

      @Database(...)
      @ConstructedBy(MyDatabaseCtor::class) // NEW
      abstract class MyDatabase : RoomDatabase
    
  3. একটি নতুন ডাটাবেস উদাহরণ তৈরি করুন কিন্তু একটি কারখানা যুক্তি পাস না করে

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

b/316978491 , b/338446862 , এবং b/342905180 সংশোধন করে

  • 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 এই কমিট ধারণ করে।

নতুন বৈশিষ্ট

  • DAO ফাংশনে নেস্টেড ম্যাপ রিটার্নের ধরন এখন রুমে সমর্থিত। ( I13f48 , 203008711 )

এপিআই পরিবর্তন

  • @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 )
  • রুম এর 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 যোগ করা হয়েছে b/203666906 )

এপিআই পরিবর্তন

  • সমস্ত 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 , Guava's ImmutableMap , ImmutableSetMultimap এবং ImmutableListMultimap সহ।

সংস্করণ 2.4.0-rc01

ডিসেম্বর 1, 2021

androidx.room:room-*:2.4.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 2.4.0-rc01-এ এই কমিট রয়েছে।

নতুন বৈশিষ্ট

  • Kotlin 1.6 সমর্থন করার জন্য KSP-এ 1.6.0-1.0.1 -এ রুমের নির্ভরতা আপডেট করুন

সংস্করণ 2.4.0-beta02

17 নভেম্বর, 2021

androidx.room:room-*:2.4.0-beta02 প্রকাশিত হয়েছে। সংস্করণ 2.4.0-beta02 এই কমিট ধারণ করে।

নতুন বৈশিষ্ট

  • আমরা @MapInfo-এ SparseArray এবং LongSparseArray-এর জন্য সমর্থন যোগ করেছি। ( Ic91a2 b/138910317 )

বাগ ফিক্স

  • আমরা একটি নতুন TypeConverter বিশ্লেষক যোগ করেছি যা প্রকারভেদে শূন্যতার তথ্য বিবেচনা করে। যেহেতু এই তথ্য শুধুমাত্র KSP-তে পাওয়া যায়, এটি শুধুমাত্র KSP-তে ডিফল্টরূপে চালু করা হয়। যদি এটি কোনো সমস্যা সৃষ্টি করে, তাহলে আপনি এটিকে টীকা প্রসেসরে room.useNullAwareTypeAnalysis=false পাস করে বন্ধ করতে পারেন। যদি তা হয়, দয়া করে একটি ফাইল বাগ করুন কারণ এই পতাকাটি ভবিষ্যতে সরানো হবে৷ এই নতুন TypeConverter বিশ্লেষকের সাথে, এটি শুধুমাত্র নন-নাল রিসিভিং TypeConverters প্রদান করার পরামর্শ দেওয়া হচ্ছে কারণ নতুন বিশ্লেষক তাদের একটি নাল চেক দিয়ে মোড়ানোর ক্ষমতা রাখে। নোট করুন যে KAPT বা Java ব্যবহারকারী ব্যবহারকারীদের জন্য এটির কোন প্রভাব নেই টীকা প্রসেসর হিসাবে (KSP এর বিপরীতে), প্রকারে শূন্যতার তথ্য নেই। ( IA88f9 , b/193437407 )
  • একটি বাগ ঠিক করুন যেখানে রুম একটি এসকিউএল ত্রুটির সাথে কম্পাইল করতে ব্যর্থ হবে যখন একটি FTS সত্তা ICU টোকেনাইজার ব্যবহার করার জন্য ঘোষণা করে। ( I00db9 , b/201753224 )
  • সংস্করণগুলির মধ্যে একটি এমবেড করা সত্তায় যুক্ত একটি নতুন কলাম সম্পর্কিত স্বয়ংক্রিয় স্থানান্তরের সমস্যা সমাধান করা হয়েছে৷ ( I5fcb1 b/193798291 )
  • আমরা বাম যোগদানের প্রশ্নে রিলেশনাল কোয়েরি পদ্ধতি রিটার্নের ধরন সংক্রান্ত একটি সমস্যার সমাধান করেছি। এই পরিবর্তনগুলির সাথে, যেখানে একটি 1-অনেক ম্যাপিং উপস্থিত থাকে, একটি কী-এর জন্য ফিরে আসা সংগ্রহটি কার্সারে না পাওয়া গেলে অবৈধ মান অবজেক্ট অন্তর্ভুক্ত করবে না। যদি কোন বৈধ মান পাওয়া না যায়, তাহলে একটি কী একটি খালি সংগ্রহে ম্যাপ করা হবে। ( Id5552 b/201946438 )
  • স্বয়ংক্রিয় স্থানান্তর সমস্যা সমাধান করা হয়েছে যেখানে SQLite কীওয়ার্ডগুলি কলামের নামগুলিতে পালাতে ব্যর্থ হয়েছে৷ ( Idbed4 b/197133152 )

সংস্করণ 2.4.0-beta01

13 অক্টোবর, 2021

androidx.room:room-*:2.4.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 2.4.0-beta01-এ এই কমিট রয়েছে।

বাগ ফিক্স

  • যখন একই স্বয়ংক্রিয় স্থানান্তরের অন্য টেবিলে একই নামের একটি নতুন কলাম ছিল তখন অটো-মাইগ্রেশন নতুন কলাম যোগ না করার সমস্যা সমাধান করা হয়েছে। ( IA5db5 , b/200818663 )
  • রুম-পেজিং দ্বারা উত্পন্ন পেজিংসোর্স বাস্তবায়ন এখন RoomDatabase.Builder এর মাধ্যমে পাস করা queryExecutor ব্যবহার করে, তাই এটি পূর্বে Dispatchers.IO এর পরিবর্তে ওভাররাইড করা যেতে পারে। ( IAe259 )

সংস্করণ 2.4.0-alpha05

29 সেপ্টেম্বর, 2021

androidx.room:room-*:2.4.0-alpha05 প্রকাশিত হয়েছে। সংস্করণ 2.4.0-alpha05 এই কমিট ধারণ করে।

নতুন বৈশিষ্ট

  • UUID- এর জন্য একটি বিল্ট-ইন টাইপ কনভার্টার যোগ করা হয়েছে। ( I671e8 , b/73132006 )

এপিআই পরিবর্তন

  • বিকাশকারীদের অন্তর্নির্মিত Enum এবং UUID রূপান্তরকারী অক্ষম করতে TypeConverters টীকাটিতে একটি নতুন সম্পত্তি যোগ করা হয়েছে৷ ডিফল্টরূপে, এই রূপান্তরকারীগুলি চালু থাকে তবে আপনি একটি নির্দিষ্ট সুযোগ বা পুরো ডাটাবেসের জন্য তাদের নিষ্ক্রিয় করতে পারেন। বিস্তারিত জানার জন্য TypeConverters ডকুমেন্টেশন দেখুন। ( 36ae9e , b/195413406 )

  • @MapInfo টীকাটির মাধ্যমে DAO-তে মাল্টিম্যাপ রিটার্ন প্রকারের জন্য নন-POJO কী/মানগুলিকে সমর্থন করা। ( 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 একটি প্রয়োজনীয় আর্টিফ্যাক্ট করুন। ( আইইএফএ )

বাগ ফিক্স

  • একটি সমস্যা সমাধান করুন যেখানে মাল্টিম্যাপ কোয়েরির ফলাফল সঠিকভাবে অর্ডার করা হয়নি যখন ক্যোয়ারীতে মানচিত্রের কী থেকে একটি কলামের একটি ORDER BY ধারা রয়েছে। ( I6b887 )

বাহ্যিক অবদান

  • @Index-এ ইনডেক্স অর্ডার নির্দিষ্ট করতে নতুন API যোগ করা হয়েছে। নিকিতা ঝেলনকিনকে ধন্যবাদ। ( I033fc )

সংস্করণ 2.4.0-alpha04

জুলাই 21, 2021

androidx.room:room-*:2.4.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 2.4.0-alpha04 এই কমিট ধারণ করে।

নতুন বৈশিষ্ট

  • রুম এখন মাল্টিম্যাপ রিটার্ন প্রকার @Dao পদ্ধতি সমর্থন করে, যোগদানের বিবৃতিগুলির জন্য দরকারী। সমর্থিত ধরনের মাল্টিম্যাপ হল Map সহ Guava's ImmutableMap , ImmutableSetMultimap এবং ImmutableListMultimap

    নিম্নলিখিত মাল্টিম্যাপ প্রশ্নের উদাহরণ:

    এক থেকে এক সম্পর্কের মানচিত্র

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

    এক-থেকে-অনেক সম্পর্ক মানচিত্র (স্ট্যান্ডার্ড মাল্টিম্যাপ)

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

    মাল্টিম্যাপ ফলাফলটি সমর্থিত অ্যাসিঙ্ক রিটার্নের ধরনগুলিতেও মোড়ানো যেতে পারে, যেমন LiveData , Rx এর Observable , বা coroutines 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>
    }
    
  • এই আর্টিফ্যাক্টটি পেজিং 3.0 এপিআই-এর উপরে নির্মিত একটি দিয়ে রুম দ্বারা তৈরি করা androidx.paging.PagingSource বাস্তবায়নকে প্রতিস্থাপন করে। নতুন পেজিংসোর্স ইমপ্লিমেন্টেশন কীগুলিকে আলাদাভাবে পার্স করে, তাই রুমের পেজিংসোর্সে ম্যানুয়ালি সরবরাহ করা যেকোনো কীকে পেজারের কনস্ট্রাক্টরের মাধ্যমে পাস করা প্রাথমিক কী সহ এই আচরণ পরিবর্তনের জন্য অ্যাকাউন্ট করতে হবে। পৃষ্ঠাগুলি 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 যেখানে সঠিকভাবে পুনরায় তৈরি করা হচ্ছে না।

বাহ্যিক অবদান

  • InvalidationTracker JournalMode.TRUNCATE কোনও সমস্যা সমাধান করুন run Uli 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 )
  • ঘরের ইনক্রিমেন্টাল টীকা প্রক্রিয়াকরণ বিকল্পটি এখন ডিফল্টরূপে চালু রয়েছে। ( খ/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-ktx:2.2.4 -কেটিএক্স: ২.২.৪, androidx.room:room-migration:2.2.4 , androidx.room:room-runtime:2.2.4 রুম-রুনটাইম: ২২.২.৪, androidx.room:room-rxjava2:2.2.4 রুম-আরএক্সজাভা ২:২.৪, এবং androidx.room:room-testing:2.2.4 রুম-টেস্টিং: ২.২.৪ প্রকাশিত হয়েছে। সংস্করণ 2.2.4 এ এই কমিটস রয়েছে।

বাগ ফিক্স

  • লেনদেন শুরু হওয়ার আগে যদি করটিনটি দ্রুত বাতিল করা হয় তবে তারা অচল হয়ে পড়বে যেখানে স্থগিত লেনদেনগুলির সাথে একটি সমস্যা স্থির করে। ( বি/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 এর সাথে মেলে আপডেট রুমের স্ক্লাইট ব্যাকরণ আপডেট করা হয়েছে। বি/110883668

সংস্করণ 2.1.0-Alpha05

13 মার্চ, 2019

নতুন বৈশিষ্ট

  • এক্সটেনশন ফাংশন RoomDatabase.withTransaction উইথট্রান্সেকশন আপনাকে নিরাপদে একটি করুটাইনের মধ্যে ডাটাবেস লেনদেন সম্পাদন করতে দেয়। রুম-এক্সটেনশন ফাংশন সহ করুটাইন সমর্থনগুলি room-ktx আর্টিফ্যাক্টে উপলব্ধ।
  • @Transaction দিয়ে টীকাযুক্ত নন-অ্যাবস্ট্রাক্ট ডিএও পদ্ধতিগুলি এখন স্থগিত ফাংশন হতে পারে। বি/120241587

এপিআই / আচরণ পরিবর্তন

  • অন্যান্য অ্যান্ড্রয়েডএক্স আর্টিফ্যাক্টগুলির মতো একই নামকরণের পরে আর্টিফ্যাক্ট room-coroutines room-ktx নামকরণ করা হয়েছে।
  • RoomDatabase beginTransaction , setTransactionSuccessful এবং endTransaction runInTransaction এবং room-ktx এক্সটেনশন ফাংশন withTransaction সহকারে অবমূল্যায়ন করা হয়েছে।

বাগ ফিক্স

  • একটি বাগ স্থির করা হয়েছে যেখানে টোকেনাইজার আর্গুমেন্টগুলি বাদ দেওয়া হচ্ছে যদি ব্যবহৃত টোকেনাইজারটি সহজ ছিল। বি/125427014
  • এমন একটি বাগ ঠিক করা হয়েছে যেখানে ঘরটি প্যারামিটারগুলির সাথে সাসপেন্ডিং ফাংশনগুলি সঠিকভাবে সনাক্ত করতে ব্যর্থ হবে যাদের প্রকারটি একটি অভ্যন্তরীণ শ্রেণি ছিল। বি/123767877
  • একটি বাগ ঠিক করা হয়েছে যেখানে INSERT , UPDATE বা DELETE বিবৃতি সহ @Query ডিএও পদ্ধতিটি মুলতুবি মূল থ্রেডে কোয়েরি প্রস্তুত করছিলেন। বি/123695593
  • স্থির বিভিন্ন বাগ যেখানে ঘর নির্দিষ্ট স্থগিত ফাংশনগুলির জন্য ভুল কোড তৈরি করবে। বি/123466702 এবং বি/123457323
  • এমন একটি বাগ স্থির করে যেখানে পদ্ধতির অবনমিত ব্যবহার উত্পন্ন কোডে সঠিকভাবে দমন করা হচ্ছে না। বি/117602586
  • Androidx.sqlite এর 1.0.2 এর আপডেট রুম নির্ভরতা যা দুর্নীতিগ্রস্থ ডাটাবেসগুলি সঠিকভাবে পরিচালনা করার জন্য ফিক্সগুলি ধারণ করে। বি/124476912

জ্ঞাত সমস্যা

  • রুম 2.1.0-আলফা 05 kotlinx-metadata-jvm আর্টিফ্যাক্টের উপর নির্ভর করে যা বর্তমানে মাভেন সেন্ট্রাল ( কেটি -27991 ) এ পাওয়া যায় না। এই নির্ভরতাটি আপনার প্রকল্পের সংগ্রহস্থলে maven { url "https://kotlin.bintray.com/kotlinx/" } যুক্ত করে সমাধান করা যেতে পারে।

সংস্করণ 2.1.0-আলফা 04

25 জানুয়ারী, 2019

নতুন বৈশিষ্ট

  • @Query সাথে টীকাযুক্ত ডিএও পদ্ধতিগুলি INSERT , UPDATE বা DELETE বিবৃতিগুলি এখন অ্যাসিঙ্ক প্রকারগুলি Single , Mayble , Completable এবং ListenableFuture ফিরিয়ে দিতে পারে। অতিরিক্তভাবে তারা ফাংশন স্থগিত করা যেতে পারে। বি/120227284

এপিআই / আচরণ পরিবর্তন

  • @Transaction দিয়ে টীকাযুক্ত কোনও অ্যাবস্ট্রাক্ট ডিএও পদ্ধতি যদি Single , Mayble , Completable , LiveData বা ListenableFuture মতো একটি অ্যাসিঙ্ক টাইপ দেয় তবে ঘরটি এখন একটি ত্রুটি ফেলে দেবে। যেহেতু লেনদেনগুলি থ্রেড সীমাবদ্ধ তাই রুমের পক্ষে এমন কোনও ফাংশনকে ঘিরে একটি লেনদেন শুরু করা এবং শেষ করা অসম্ভব যা বিভিন্ন থ্রেডে প্রশ্নগুলি তৈরি করতে পারে। বি/120109336
  • OnConflictStrategy.FAIL এবং OnConflictStrategy.ROLLBACK @Deprecated হয়েছে যেহেতু তারা অ্যান্ড্রয়েডের বর্তমান এসকিউএলাইট বাইন্ডিংগুলির সাথে ইচ্ছা মতো আচরণ করে না। বি/117266738

বাগ ফিক্স

  • এমন একটি বাগ ঠিক করা হয়েছে যেখানে ডিএও পদ্ধতিটি স্থগিত ফাংশন হলে ঘরটি কোনও রিটার্ন টাইপের টাইপকনভার্টারটি সঠিকভাবে ব্যবহার করবে না। বি/122988159
  • এমন একটি বাগ স্থির করে যেখানে ঘরটি উত্তরাধিকারসূত্রে সাসপেন্ড ফাংশনগুলি অ-স্থায়িত্ব হিসাবে চিহ্নিত করবে। বি/122902595
  • একটি বাগ স্থির করে যেখানে কোনও @Embedded ফিল্ড যখন কোনও পিতামাতার ক্লাসে থাকে এবং একাধিক শিশু ক্লাসে ব্যবহৃত হয় তখন ঘরটি ভুল কোড তৈরি করে। বি/121099048
  • একটি ইস্যু স্থির করে যেখানে ডিএওকে একটি beginTransaction() এবং endTransaction() এর মধ্যে স্থগিত ফাংশনগুলি অনুরোধ করার সময় ডাটাবেসটি অচল হয়ে যায়। বি/120854786

সংস্করণ 2.1.0-Alpha03

4 ডিসেম্বর, 2018

এপিআই পরিবর্তন

  • @Fts3 / @Fts4 এ এফটিএস tokenizer এখন এনামের পরিবর্তে একটি স্ট্রিং নেয়। এটি কাস্টম টোকেনাইজারগুলিকে রুমে ব্যবহার করার অনুমতি দেয়। অন্তর্নির্মিত টোকেনাইজারগুলি এখনও স্ট্রিং ধ্রুবক হিসাবে FtsOptions এ সংজ্ঞায়িত করা হয়। বি/119234881

নতুন বৈশিষ্ট

  • কোরোটাইনস : ডিএও পদ্ধতিগুলি এখন স্থগিত ফাংশন হতে পারে। ঘরে স্থগিত ফাংশন সমর্থন করার জন্য একটি নতুন শিল্পকর্ম প্রকাশিত হয়েছে, room-coroutinesবি/69474692
  • ডিএও পদ্ধতিগুলি @Insert , @Delete বা @Update সাথে টীকাযুক্ত এখন রিটার্ন টাইপ হিসাবে ListenableFuture সমর্থন করে। বি/119418331

বাগ ফিক্স

  • এমন একটি বাগ ঠিক করা হয়েছে যেখানে ঘরটি @Entity ignoredColumns সম্পত্তিতে কলাম সহ কোনও কনস্ট্রাক্টরকে ভুলভাবে চেষ্টা করার চেষ্টা করবে। বি/119830714
  • এমন একটি বাগ ঠিক করা হয়েছে যেখানে ঘরগুলি তাদের উত্পন্ন বাস্তবায়নে ডিএও পদ্ধতির পরামিতিগুলিকে চূড়ান্ত হিসাবে চিহ্নিত করবে না। বি/118015483
  • একটি বাগ ঠিক করা হয়েছে যেখানে বিশেষ প্রতীক সহ একটি ক্যোয়ারিতে কোনও ত্রুটি রিপোর্ট করার সময় ঘরের প্রসেসর ক্রাশ হবে। বি/119520136
  • এমন একটি বাগ স্থির করে যেখানে ঘরটি অন্যান্য বিভিন্ন Collection বাস্তবায়নকে একটি IN প্রকাশের যুক্তি হিসাবে প্রত্যাখ্যান করবে। বি/119884035
  • এমন একটি বাগ স্থির করে যেখানে লাইভডাটা ঘর থেকে ফিরে এসেছিল আবর্জনা সংগ্রহ করা হবে যখন চিরতরে পর্যবেক্ষণ করা হয় এটি আর নতুন ডেটা নির্গত করে না। বি/74477406
  • লক বিতর্ক হ্রাস করতে RoomDatabase ক্লোজ লক আপডেট হয়েছে। বি/117900450

সংস্করণ 2.1.0-Alpha02

অক্টোবর 30, 2018

নতুন বৈশিষ্ট

  • একটি @Relation @DatabaseView রেফারেন্স করার জন্য সমর্থন যুক্ত করা হয়েছে। বি/117680932

বাগ ফিক্স

  • একটি বাগ স্থির করে যেখানে কোনও আরএক্স রিটার্নের ধরণ থেকে সাবস্ক্রাইব এবং নিষ্পত্তি করার সময় কক্ষটি মূল থ্রেডে ডিস্ক I/O সঞ্চালন করবে। বি/117201279
  • এমন একটি বাগ ঠিক করা হয়েছে যেখানে ঘরটি কোটলিন সত্তা শ্রেণিতে কোনও ক্ষেত্রের জন্য উপযুক্ত ধরণের রূপান্তরকারী খুঁজে পেতে ব্যর্থ হবে। বি/111404868
  • এমন একটি বাগ ঠিক করা হয়েছে যেখানে কক্ষটি একটি DAO ইন্টারফেস বাস্তবায়নের জন্য একটি কোটলিন ডিফল্ট পদ্ধতিযুক্ত ভুল কোড তৈরি করবে যার কোনও যুক্তি নেই। বি/117527454
  • আপডেট রুমের এসকিউএলাইট ব্যাকরণ পার্সার, একটি পারফরম্যান্স ইস্যু ঠিক করে যা দীর্ঘ সময়সীমার কারণ হতে পারে। বি/117401230

সংস্করণ 2.1.0-Alpha01

অক্টোবর 8, 2018

নতুন বৈশিষ্ট

  • এফটিএস : রুম এখন ম্যাপিং এফটিএস 3 বা এফটিএস 4 টেবিল সহ সত্তাগুলিকে সমর্থন করে। ম্যাপিং পূর্ণ-পাঠ্য অনুসন্ধান টেবিল সহ একটি শ্রেণি ঘোষণার জন্য এখন @Entity সাথে টীকাযুক্ত ক্লাসগুলি অতিরিক্তভাবে @Fts3 বা @Fts4 দিয়ে টীকা দেওয়া যেতে পারে। 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 types Completable , Single<T> and Maybe<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 in RoomDatabase.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 in RoomDatabase.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 and mDatabase in RoomDatabase 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's Rx Single and Maybe implementations where it would recycle the query ahead of time, causing problems if you add more than 1 observer to the returned Single or Maybe instancces. 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

API Changes

  • Based on API Review feedback, @RawQuery does not accept passing a String 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 of vararg 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 the observedEntities property as long as the Pojo references to one or more entities via its Embedded fields or Relation 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 in RoomDatabase.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 paging alpha-4 or higher, and switch from LivePagedListProvider to LivePagedListBuilder if you haven't already.

বাগ ফিক্স

  • Improved support for Kotlin Kapt types. b/69164099
  • Order of fields do not invalidate schema anymore. b/64290754