Room

Oda kalıcılık kitaplığı, SQLite'ın tam gücünden yararlanırken daha güçlü veritabanı erişimi sağlamak için SQLite üzerinde bir soyutlama katmanı sağlar.
Son Güncelleme Kararlı Sürüm Yayın Adayı Beta Sürümü Alfa Sürümü
10 Temmuz 2024 2.6.1 - - 2.7.0-alfa05

Bağımlılıkları bildirme

Room'a bir bağımlılık eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.

Oda bağımlılıkları arasında test odası taşıma işlemleri ve Room RxJava yer alır.

Uygulamanız veya modülünün build.gradle dosyasına ihtiyaç duyduğunuz yapılar için bağımlılıkları ekleyin:

Eski

dependencies {
    def room_version = "2.6.1"

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

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

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

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

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

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

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

Kotlin

dependencies {
    val room_version = "2.6.1"

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

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

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

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

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

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

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

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

KAPT eklentisini kullanma hakkında bilgi edinmek için KAPT belgelerine bakın.

KSP eklentisini kullanma hakkında bilgi için KSP hızlı başlangıç dokümanlarına bakın.

Kotlin uzantılarını kullanma hakkında bilgi için ktx dokümanlarına bakın.

Bağımlılıklar hakkında daha fazla bilgi için Derleme Bağımlılıkları Ekleme bölümüne bakın.

İsteğe bağlı olarak, Android olmayan kitaplıklar (ör. Java veya yalnızca Kotlin'in Gradle modülleri) için Oda ek açıklamalarını kullanmak üzere androidx.room:room-common uygulamasına başvurabilirsiniz.

Derleyici Seçeneklerini Yapılandırma

Oda, aşağıdaki ek açıklama işlemci seçeneklerine sahiptir.

room.schemaLocation directory
Veritabanı şemalarının belirtilen dizindeki JSON dosyalarına aktarılmasını sağlar. Daha fazla bilgi için Oda Taşıma İşlemleri bölümüne bakın.
room.incremental boolean
Gradle artımlı ek açıklama işlemcisini etkinleştirir. true, varsayılan değerdir.
room.generateKotlin boolean
Java yerine Kotlin kaynak dosyaları oluşturun. KSP gerekir. false varsayılan değerdir. Daha ayrıntılı bilgi için sürüm 2.6.0 notlarına bakın.

Room Gradle eklentisini kullanma

Room 2.6.0 ve sonraki sürümlerde, Room Gradle eklentisini kullanarak Oda derleyici seçeneklerini yapılandırabilirsiniz. Eklenti, projeyi, oluşturulan şemalar (derleme görevlerinin bir sonucudur ve otomatik taşıma işlemlerinde kullanılır) doğru şekilde, yeniden üretilebilir ve önbelleğe alınabilir derlemelere sahip olacak şekilde yapılandırılacak şekilde yapılandırır.

Eklentiyi eklemek için üst düzey Gradle derleme dosyanızda, eklentiyi ve sürümünü tanımlayın.

Eski

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

Kotlin

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

Modül düzeyindeki Gradle derleme dosyasında, eklentiyi uygulayın ve room uzantısını kullanın.

Eski

plugins {
    id 'androidx.room'
}

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

Kotlin

plugins {
    id("androidx.room")
}

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

Room Gradle eklentisi kullanılırken schemaDirectory öğesinin ayarlanması gerekir. Bu işlem, Room derleyicisini, çeşitli derleme görevlerini ve arka uçlarını (javac, KAPT, KSP) şema dosyalarını aromalı klasörlere dönüştürecek şekilde yapılandırır (ör. schemas/flavorOneDebug/com.package.MyDatabase/1.json). Bu dosyalar, doğrulama ve otomatik taşıma işlemleri için kullanılacak depoya kaydedilmelidir.

Bazı seçenekler, Room Gradle Eklentisinin tüm sürümlerinde (Oda derleyicisi tarafından desteklenseler) yapılandırılamaz. Aşağıdaki tabloda her bir seçenek listelenmekte ve bu seçeneğin room uzantısını kullanarak yapılandırılması için destek ekleyen Room Gradle eklentisi gösterilmektedir. Sürümünüz daha düşükse veya seçenek henüz desteklenmiyorsa bunun yerine not işlemci seçeneklerini kullanabilirsiniz.

Option Sürümden bu yana
room.schemaLocation (zorunlu) 2.6.0
room.incremental -
room.generateKotlin -

Ek açıklama işlemci seçeneklerini kullan

Room Gradle eklentisini kullanmıyorsanız veya istediğiniz seçenek eklenti sürümünüz tarafından desteklenmiyorsa Odayı, Derleme bağımlılıkları ekleme bölümünde açıklandığı gibi not işlemci seçeneklerini kullanarak yapılandırabilirsiniz. Ek açıklama seçeneklerini nasıl belirteceğiniz, Oda için KSP veya KAPT kullanıp kullanmadığınıza bağlıdır.

Eski

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

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

Kotlin

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

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

room.schemaLocation, temel bir tür değil de bir dizin olduğundan, bu seçenek eklenirken Gradle'ın güncel kontroller yaparken bu dizinden haberdar olması için CommandLineArgumentsProvider kullanılması gerekir. Oda veritabanınızı taşıma bölümünde, şema konumunu sağlayan eksiksiz bir CommandLineArgumentsProvider uygulaması gösterilir.

Geri bildirim

Geri bildiriminiz Jetpack'i iyileştirmemize yardımcı olacaktır. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz varsa bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy ekleyebilirsiniz.

Yeni sayı oluştur

Daha fazla bilgi için Sorun İzleyici dokümanlarına bakın.

Sürüm 2.7

Sürüm 2.7.0-alpha05

10 Temmuz 2024

androidx.room:room-*:2.7.0-alpha05 yayınlandı. Sürüm 2.7.0-alpha05 bu kaydetmeleri içerir.

API Değişiklikleri

  • SQLiteKt adlı dosya SQLite ve BundledSQLiteKt adlı dosya BundledSQLite olarak yeniden adlandırıldı. (I8b501)

Hata Düzeltmeleri

  • AndroidSQLiteDriver kullanılırken RoomDatabase öğesinin kilitlenmesine veya bağlantı zaman aşımıyla hata vermesine neden olan hata düzeltildi.

Sürüm 2.7.0-alpha04

12 Haziran 2024

androidx.room:room-*:2.7.0-alpha04 yayınlandı. Sürüm 2.7.0-alpha04 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • DAO'da çoklu harita döndürme türü tanımlandığında Odanın ek açıklama işlemcisinde uyumsuz KMP kodu oluşturulmasına neden olan bir sorun düzeltildi. (b/340983093)
  • @Database ek açıklamalı sınıfın hiçbir paketi olmadığında Odanın oluşturulan veritabanı uygulamasını bulamamasına neden olan sorun düzeltildi. (b/342097292)
  • Otomatik kapatma ve birden çok örneği geçersiz kılma özelliklerinin etkinleştirilmesi, veritabanı boşta olduğu için otomatik olarak kapatıldığında bazen ConcurrentModificationException oluşmasına neden olan sorun düzeltildi.

Sürüm 2.7.0-alpha03

29 Mayıs 2024

androidx.room:room-*:2.7.0-alpha03 yayınlandı. Sürüm 2.7.0-alpha03 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Kotlin 2.0 ve KSP 2.0 ile ilgili çeşitli sorunları düzeltin. KSP 2 desteği sunan Kotlin 2.0 sürümünün henüz tamamlanmadığını ve ekibin yeni derleyicideki çeşitli API'ler ve davranış değişiklikleri üzerinde çalıştığını unutmayın. (b/314151707)

Sürüm 2.7.0-alpha02

14 Mayıs 2024

androidx.room:room-*:2.7.0-alpha02 yayınlandı. Sürüm 2.7.0-alpha02 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Çeşitli KSP sorunları düzeltildi.

Sürüm 2.7.0-alpha01

1 Mayıs 2024

androidx.room:room-*:2.7.0-alpha01 yayınlandı. Sürüm 2.7.0-alpha01 bu kaydetmeleri içerir.

Yeni Özellikler

  • Kotlin Çoklu Platform (KMP) Desteği: Bu sürümde Room, Kotlin Multiplatform (KMP) kitaplığı olacak şekilde yeniden düzenlendi. Hâlâ yapılacak işler olsa da bu sürümde, Room'da işlevlerin büyük bir kısmının "ortak" hale getirildiği (çok platformlu) yeni bir sürüm kullanıma sunuluyor. Şu anda Android, iOS, JVM (Masaüstü), yerel Mac ve yerel Linux platformları desteklenir. Yeni desteklenen platformlarda eksik olan tüm işlevler, gelecekteki Oda sürümlerinde "özellik tamamlandı" durumuna getirilecektir.

Room KMP'yi kullanmaya nasıl başlayacağınız hakkında daha fazla bilgi için lütfen resmi Room KMP belgelerini inceleyin.

  • İşleme KSP aracılığıyla yapılıyorsa KSP'de Kotlin Kodu Oluşturma varsayılan olarak AÇIK durumdadır. Room, KAPT veya yalnızca Java projeleri için Java kaynakları oluşturmaya devam eder.

API Değişiklikleri

  • Oluşturulan RoomDatabase uygulamasını örneklendirirken yansımanın kullanılmaması için Oda tarafından oluşturulan bir işlevle kullanılması amaçlanan lambda parametresini alan bir Room.databaseBuilder() aşırı yüklemesi eklendi. Örnek kullanım:
Room.databaseBuilder<MyDatabase>(
    context = appContext,
    name = dbFilePath,
    factory =  { MyDatabase::class.instantiateImpl() }
)
  • CoroutineContext bulunan bir Odayı yapılandırmaya yönelik API, oluşturucuya eklendi: RoomDatabase.Builder.setQueryCoroutineContext. Bir RoomDatabase öğesinin, setQueryExecutor kullanan yürütücülerden yalnızca biriyle veya eş yordam bağlamıyla yapılandırılabileceğini, ancak ikisinin aynı anda yapılandırılamayacağını unutmayın.
  • Odayı bir SQLite Sürücüsü ile yapılandırmak için API eklendi: RoomDatabase.Builder.setDriver(). SQLite Driver API hakkında daha fazla bilgi için SQLite KMP dokümanlarına bakın.
  • Sürücü API'lerinden temel SQLiteConnection öğesine erişmek için API'ler eklendi: RoomDatabase.useReaderConnection ve RoomDatabase.useWriterConnection.
  • Çeşitli Oda ile alakalı geri çağırmalarda artık SupportSQLiteDatabase yerine SQLiteConnection alan aşırı yüklenmiş bir sürüm var. Bunlar, KMP projesine taşınırken geçersiz kılınacak şekilde tasarlanmıştır. Bir Android uygulamasındaki oda kullanımlarını ortak bir KMP modülüne taşıma hakkında daha fazla bilgi için taşıma rehberine bakın. Geri çağırma işlevleri şunlardır:
    • Migration.migrate(SQLiteConnection)
    • AutoMigrationSpec.onPostMigrate(SQLiteConnection)
    • RoomDatabase.Callback.onCreate(SQLiteConnection)
    • RoomDatabase.Callback.onDestructiveMigration(SQLiteConnection)
    • RoomDatabase.Callback.onOpen(SQLiteConnection)
  • KTX yapısı androidx.room:room-ktx, tüm API'leriyle birlikte androidx.room:room-runtime ile birleştirildi. Yapı artık boş. Lütfen onu bağımlılık listenizden kaldırın.

Sürüm 2.6

Sürüm 2.6.1

29 Kasım 2023

androidx.room:room-*:2.6.1 yayınlandı. Sürüm 2.6.1 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Oluşturulan kodda, EntityCursorConverter öğesindeki Çift sütun değerinin 0,0 yerine 0 olarak ayarlandığı sorun çözüldü. Kayan türde sütunlara yönelik benzer bir kenar büyük harf için olası bir düzeltme de eklenmiştir. (Id75f5, b/304584179)
  • PagingSource yüklemelerinden atılan istisnalar, artık Atılabilir öğe içeren LoadStateUpdate öğesinin LoadResult.Error öğesi olarak yayılacak. Bu hata durumu PagingDataAdapter.loadStateFlow(Views) veya LazyPagingItems.loadState(Compose) ile gözlemlenebilir. Bunun, geçmişteki yükleme hatalarının, yüklemeyi tetikleyen dao yöntemi tarafından atılan bir İstisna olarak ortaya çıkacağı davranışsal bir değişiklik anlamına geldiğini unutmayın. (I93887, b/302708983)

Sürüm 2.6.0

18 Ekim 2023

androidx.room:room-*:2.6.0 yayınlandı. 2.6.0 sürümü bu kaydetmeleri içerir.

2.5.0'dan bu yana önemli değişiklikler

  • Kotlin kod oluşturmayı etkinleştirme seçeneği (veya "Kotlin CodeGen"), artık Oda KSP'sinde kullanılabilir. (4297ec0). Room'da Kotlin CodeGen'i etkinleştirmek için KSP için işlemci seçeneklerinize room.generateKotlin seçenek adını ekleyin. KSP için işlemci seçeneklerinin nasıl iletileceği hakkında daha fazla bilgi edinmek üzere KSP belgelerini inceleyin.

Not: Kotlin CodeGen'i kullanırken, eklenen ek kısıtlamaların olduğunu unutmamak önemlidir. Kotlin CodeGen'de DAO alıcıları veya DAO sorguları olarak soyut özelliklere izin verilmez. Bunun yerine, özellik değerinin sabit olduğu ve sabit depolanan bir sonuca sahip olduğu yanlış düşüncesini ortadan kaldırmak için işlev olarak yeniden yazılması beklenir. Eklenen bir diğer kısıtlama ise Kotlin CodeGen için Room'da boş değer atanabilir toplama dönüş türlerine izin verilmemesidir.

Uyarı: Kotlin CodeGen kullanırken projelerinizin boş değer atanması açısından daha katı olduğunu görebilirsiniz. Kotlin CodeGen'de, bağımsız değişkenlerin boş değeri önemlidir. Java'da ise bu çoğu zaman göz ardı edilir. Örneğin, "Akış<foo\>" döndürme türünüz olduğunu ve tablonun boş olduğunu varsayalım. Bu, Java CodeGen'de herhangi bir soruna neden olmaz ancak Kotlin CodeGen'de bir hata alırsınız. Bunu önlemek için null değer verildiğini varsayarak "Flow<foo?\>" işlevini kullanmanız gerekir. </foo?\></foo\>

  • Room Gradle eklentisi için yeni yapı androidx.room kimliğine sahip Oda'ya eklendi. Bu yapı, Room'da Gradle ek açıklama işlemci seçenekleri aracılığıyla şema giriş ve çıkışlarına sahip olma ile ilgili mevcut çeşitli sorunları çözer. Daha ayrıntılı bilgi için Oda Sürümü 2.6.0-alpha02 sürüm notlarına bakın.
  • Oda Öğelerindeki değer sınıfları artık KSP için desteklenmektedir. (4194095)
  • DAO işlevlerinde iç içe yerleştirilmiş Harita döndürme türleri artık Oda'da destekleniyor. (I13f48, 203008711)

Sürüm 2.6.0-rc01

20 Eylül 2023

androidx.room:room-*:2.6.0-rc01 yayınlandı. 2.6.0-rc01 sürümü bu kaydetmeleri içerir.

Sürüm 2.6.0-beta01

23 Ağustos 2023

androidx.room:room-*:2.6.0-beta01 yayınlandı. Sürüm 2.6.0-beta01 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Bir upsert sırasında 2067 SQLITE_CONSTRAINT_UNIQUE istisnası atıldığında karşılaşılan kurulum sırasında SQLite özel durum istisnası işlendiğinde, upsert bir güncelleme gerçekleştirmesi gerekir. (If2849, b/243039555)

Sürüm 2.6.0-alpha03

9 Ağustos 2023

androidx.room:room-*:2.6.0-alpha03 yayınlandı. 2.6.0-alpha03 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • DAO işlevlerinde iç içe yerleştirilmiş Harita döndürme türleri artık Oda'da destekleniyor. (I13f48, 203008711)

API Değişiklikleri

  • @MapInfo yerine artık desteği sonlandırılan @MapColumn adlı yeni bir ek açıklama türü oluşturuldu. Bir @MapInfo ek açıklamasında sağlanan her bir sütun adı (keyColumnName, valueColumnName veya her ikisi) için yalnızca columnName ile bir @MapColumn ek açıklaması bildirmeniz ve DAO işlevinin döndürme türünde, başvurulan belirli tür bağımsız değişkeninde (Haritanın anahtarı veya değeri) ek açıklamayı kullanmanız gerekir. Bunun nedeni, @MapColumn ek açıklamasının, @MapInfo gibi işlevin kendisi yerine, bir DAO işlevinin döndürülen türü içindeki tür bağımsız değişkeninde doğrudan kullanılmasıdır. Daha fazla bilgi için lütfen @MapColumn dokümanlarına bakın. (Ib0305, b/203008711)
  • API dosyaları, uyumluluk engellemesine açıklama ekleyecek şekilde güncellendi (I8e87a, b/287516207)
  • Room Gradle eklentisi API'leri her zaman her varyant için yapılandırma gerektirmeyecek şekilde güncellendi. Böylece eklenti, birden fazla dizin oluşturmadan tüm varyantlar için global konumu kabul edebilir. Böylece, daha sorunsuz taşıma işlemleri gerçekleştirilebilir. Bu da, eklentilerin (yeniden oluşturulabilir ve önbelleğe alınabilir derlemeler) avantajlarını korurken çeşitleri veya tür şemalarını manuel olarak yapılandıracak kadar esnektir. (I09d6f, b/278266663)

Hata Düzeltmeleri

  • QueryInterceptorStatement sisteminde olası bellek sızıntısı güvenlik açığı düzeltildi. (I193d1)
  • QueryInterceptorDatabase execSQL() işlevindeki hatalı davranış düzeltildi. (Iefdc8)

Sürüm 2.6.0-alpha02

21 Haziran 2023

androidx.room:room-*:2.6.0-alpha02 yayınlandı. 2.6.0-alpha02 sürümü bu kaydetmeleri içerir.

Room Gradle Eklentisi

Bu yeni sürüm, Room Gradle Plugin için androidx.room kimlikli yeni bir yapı içeriyor. Bu yapı, Room'da Gradle ek açıklama işlemci seçenekleri aracılığıyla şema giriş ve çıkışlarına sahip olma ile ilgili mevcut çeşitli sorunları çözer. Room Gradle eklentisi projeyi, otomatik taşıma işlemleri için kullanılan ve derleme görevlerinin çıkışı olan şemalar, yeniden üretilebilir ve önbelleğe alınabilir derlemelere sahip olacak şekilde doğru şekilde yapılandırılacak şekilde yapılandırır. Eklenti, temel şema konumunu yapılandırmak için bir DSL sunar:

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

Ardından eklenti, Room derleyicisini, çeşitli derleme görevlerini ve arka uçlarını (javac, KAPT, KSP) şema dosyalarını aromalı klasörlerde (ör. schemas/flavorOneDebug/com.package.MyDatabase/1.json) oluşturacak şekilde yapılandırır. Bu dosyalar, her zaman olduğu gibi doğrulama ve otomatik taşıma işlemleri için kullanılacak depoya denetlenir. Ek açıklama işlemci seçenekleri yerine eklentiyi kullanmaya geçişin ardından, mevcut şema dosyalarının eklenti tarafından oluşturulan oluşturulan bilgi dizinlerine kopyalanması gerekir. Bu, manuel olarak yapılması gereken tek seferlik bir taşıma işlemidir. developers.android.com adresindeki şema dokümanları, geri bildirim ele alındığında ve eklenti kararlı hale geldiğinde ileride güncellenecektir. Bu nedenle, lütfen deneyin.

API Değişiklikleri

  • RoomDatabase.QueryCallback, SAM dönüşümü kullanımlarına izin veren işlevsel bir arayüz olarak tanımlanmıştır. (Iab8ea, b/281008549)

Hata Düzeltmeleri

  • Room kaynaklarının Java'dan Kotlin'e taşınmasından sonra Robolectric'te veritabanı örneklendirirken ortaya çıkan sorun çözme. (Ic053c, b/274924903)

Sürüm 2.6.0-alpha01

22 Mart 2023

androidx.room:room-*:2.6.0-alpha01 yayınlandı. 2.6.0-alpha01 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • Room'da KSP için değer sınıflarını destekleme. Oda, artık Varlıklar bölümündeki değer sınıflarını destekleyebilir. (4194095)
  • Kotlin kodu oluşturma(veya "Kotlin CodeGen") artık Oda'da (4297ec0) etkinleştirilebilir. Room'da Kotlin CodeGen'i etkinleştirmek için KSP için işlemci seçeneklerinize room.generateKotlin seçenek adını ekleyin. KSP için işlemci seçeneklerinin nasıl iletileceği hakkında daha fazla bilgi edinmek üzere KSP belgelerini inceleyin.

Not: Kotlin CodeGen'i kullanırken, eklenen ek kısıtlamaların olduğunu unutmamak önemlidir. Kotlin CodeGen'de DAO alıcıları veya DAO sorguları olarak soyut özelliklere izin verilmez. Bunun yerine, özellik değerinin sabit olduğu ve sabit depolanan bir sonuca sahip olduğu yanlış düşüncesini ortadan kaldırmak için işlev olarak yeniden yazılması beklenir. Eklenen bir diğer kısıtlama ise Kotlin CodeGen için Room'da boş değer atanabilir toplama dönüş türlerine izin verilmemesidir.

Uyarı: Kotlin CodeGen kullanırken projelerinizin boş değer atanması açısından daha katı olduğunu görebilirsiniz. Kotlin CodeGen'de, bağımsız değişkenlerin boş değeri önemlidir. Java'da ise bu çoğu zaman göz ardı edilir. Örneğin, "Akış<foo\>" döndürme türünüz olduğunu ve tablonun boş olduğunu varsayalım. Bu, Java CodeGen'de herhangi bir soruna neden olmaz ancak Kotlin CodeGen'de bir hata alırsınız. Bunu önlemek için null değer verildiğini varsayarak "Flow<foo?\>" işlevini kullanmanız gerekir. </foo?\></foo\>

API Değişiklikleri

  • DAO yöntemi dönüş türlerinde boş değerli koleksiyonların anlamsız kullanımına karşı koruma. (I777dc, b/253271782, b/259426907)
  • Geçersiz kılma izleyici değişikliklerine neden olan bir Akış oluşturmak için bir API ekleyin. API, veritabanı değişikliklerine tepki vermesi gereken akışları oluşturmak için kullanışlıdır. (I8c790, b/252899305)

Hata Düzeltmeleri

  • Kotlin kod oluşturucuda soyut özelliklere, DAO alıcıları veya DAO sorguları olarak izin vermeyin. Bunun yerine, özellik değerinin sabit olduğu ve depolanan sabit bir sonuca sahip olduğu gibi yanlış bir algıdan kaçınmak için bu özelliklerin işlev olarak yeniden yazılması gerekir. (If6a13, b/127483380, b/257967987)

Sürüm 2.5.2

Sürüm 2.5.2

21 Haziran 2023

androidx.room:room-*:2.5.2 yayınlandı. Sürüm 2.5.2 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • kotlinx-metadata-jvm ile ilgili uyumsuzluk sorununu düzeltin. (386d5c)
  • Robolectric testinde kullanıldığında Room'un hata vermesine neden olan bir sorun düzeltildi. (f79bea, b/274924903)

Sürüm 2.5.1

Sürüm 2.5.1

22 Mart 2023

androidx.room:room-*:2.5.1 yayınlandı. Sürüm 2.5.1 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Veritabanı zaten açıksa FrameworkSQLiteHelper içindeki veritabanı üst dizinini kontrol etmekten kaçının. (5de86b8)
  • Veritabanının zaten açık olup olmadığını kontrol ederken bir isOpenInternal kontrolü kullanın. (e91fb35)
  • Odanın acquireTransactionThread() bölümünde alıcı destek kaydının daha iyi işlenmesi artık mümkün. (219f98b). Room, askıya alma işlemi sırasında işlem yürütücüden gelen bir iş parçacığını kullanır, bunun içinde bir etkinlik döngüsü başlatır ve tümünün işlem eş yordamı içinde kapsüllenmesi için veritabanı işlemlerini askıya alan veritabanı işlemlerini bu iş parçacığına gönderir. Genellikle işlem ileti dizisinin işlemi başlatan ileti dizisinden farklı olması beklenir ancak bazı durumlarda aynıdır. Bu tür yeniden giriş durumlarının işlenmesi için withTransaction(), artık bir kontrol işine bağlı kalmayacak şekilde yeniden düzenlendi. Bunun yerine, askıya alma işlemi bloğunu işlem ileti dizisindeki runBlocking içinden yürütecek.

Sürüm 2.5.0

Sürüm 2.5.0

22 Şubat 2023

androidx.room:room-paging-guava:2.5.0, androidx.room:room-paging-rxjava2:2.5.0 ve androidx.room:room-paging-rxjava3:2.5.0 serbest bırakıldı. 2.5.0 sürümü bu kaydetmeleri içerir.

Sürüm 2.5.0

11 Ocak 2023

androidx.room:room-*:2.5.0 yayınlandı. 2.5.0 sürümü bu kaydetmeleri içerir.

2.4.0'dan bu yana önemli değişiklikler

  • room-runtime kaynağın tümü Java'dan Kotlin'e dönüştürüldü. Kodunuz Kotlin'deyse, kitaplığın Kotlin'e dönüştürülmesi nedeniyle kaynak uyumsuzluğu sorunlarıyla karşılaşabileceğinizi unutmayın. Örneğin, bilinen bir kaynak uyumsuzluğu değişikliği, InvalidationTracker ürününde MutableSet yerine Set türünde bir parametreye sahip olmak için artık Observer içinde onInvalidate() değerini bildirmeniz gerektiğidir. Ayrıca, belirli alıcı yöntemleri, Kotlin dosyalarında mülk erişimi söz dizimi gerektiren mülklere dönüştürüldü. Önemli uyumsuzluklar varsa lütfen hata bildiriminde bulunun.
  • Benzersizlik çakışması olmadığında öğe eklemeye veya çakışma durumunda öğeyi güncellemeye çalışan @Upsert adlı yeni bir kısayol ek açıklaması eklendi. (I7aaab, b/241964353)
  • Oda Servisleri'ni desteklemek için room-paging-rxjava2, room-paging-rxjava3 ve room-paging-guava adlı yeni oda çağırma yapıları eklendi.
  • @MapInfo ürününde (Icc4b5) belirsizliği gidermek için anahtar ve değer tablosu adları sağlamaya yönelik API'ler eklendi

Sürüm 2.5.0-rc01

7 Aralık 2022

androidx.room:room-*:2.5.0-rc01 yayınlandı. Sürüm 2.5.0-rc01 bu kaydetmeleri içerir.

  • Bu sürüm, 2.5.0-beta02 ile aynı.

Sürüm 2.5.0-beta02

9 Kasım 2022

androidx.room:room-*:2.5.0-beta02 yayınlandı. Sürüm 2.5.0-beta02 bu kaydetmeleri içerir.

API Değişiklikleri

  • Java'nın dizi davranışıyla eşleştirmek için değişkenden (Array<Any?>) sorgu bağımsız değişkenine (Array<out Any?>) sorgu bağımsız değişkeni alan çeşitli API'leri düzeltin. (b/253531073)

Sürüm 2.5.0-beta01

5 Ekim 2022

androidx.room:room-*:2.5.0-beta01 yayınlandı. Sürüm 2.5.0-beta01 bu kaydetmeleri içerir.

API Değişiklikleri

  • @Upsert sürümünü destekleyen minimum sürümü API 16 olarak kısıtlayın. Bunun nedeni, eski API'lerde birincil anahtar kısıtlama çakışmasının kimliğinin doğrulanamamasıdır. (I5f67f, b/243039555)

Hata Düzeltmeleri

  • Gölge tabloların hatalı bir şekilde şema .json dosyalarına aktarılmasına ve bu tabloların bozulmasına neden olan sorun düzeltildi. (I4f83b, b/246751839)

Sürüm 2.5.0-alpha03

24 Ağustos 2022

androidx.room:room-*:2.5.0-alpha03 yayınlandı. Sürüm 2.5.0-alpha03 bu kaydetmeleri içerir.

Yeni Özellikler

  • Benzersizlik çakışması olmadığında öğe eklemeye veya çakışma durumunda öğeyi güncellemeye çalışan @Upsert adlı yeni bir kısayol ek açıklaması eklendi. (I7aaab, b/241964353)

Hata Düzeltmeleri

  • Oda, otomatik taşıma yabancı anahtar kısıtlama kontrolü sırasında IllegalStateException yerine bir SQLiteConstraintException atar. (I328dd)
  • getOpenHelper, getQueryExecutor ve getTransactionExecutor öğelerinin alıcısı / özellikleri için uyumsuz Kotlin kaynağındaki değişikliği düzeltin. (Iad0ac)

Sürüm 2.5.0-alpha02

1 Haziran 2022

androidx.room:room-*:2.5.0-alpha02 yayınlandı. 2.5.0-alpha02 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

API Değişiklikleri

  • room-runtime içeriğinin tamamı Java'dan Kotlin'e dönüştürüldü. (If2069, b/206859668),(Ie4b55, b/206859668), (I697ee, b/206859668), (I96c25, I96c25,

    Not: Kütüphanenin Kotlin'e dönüştürülmesi nedeniyle kaynak uyumsuzluğu sorunlarıyla karşılaşabilirsiniz. Kodunuz Kotlin'deyse ve Room'un eski sürümünü çağırıyorsa yeni sürümün bu tür durumları ele alması gerekir. Örneğin, bilinen bir kaynak uyumsuzluğu değişikliği, InvalidationTracker ürününde MutableSet yerine Set türünde bir parametreye sahip olmak için artık Observer içinde onInvalidate() değerini bildirmeniz gerektiğidir.

  • @MapInfo ürününde (Icc4b5) belirsizliği gidermek için anahtar ve değer tablosu adları sağlamaya yönelik API'ler eklendi
  • Mülk alıcılarda @Ignore iznini yeniden etkinleştirmek için kaynak uyumluluğu sorununu düzeltin. (Ifc2fb)

Hata Düzeltmeleri

  • Yinelenen sütun çözümleme buluşsal algoritması. Oda, artık çoklu eşleme sorgusundaki belirsiz sütunları çözümlemeye çalışacak. Bu, aynı ada sahip tablolar içeren tablolara sahip JOIN'lerin bir sonuç veri nesnesiyle doğru şekilde eşlenmesine olanak tanır. (I4b444, b/201306012, b/212279118)

Sürüm 2.5.0-alpha01

23 Şubat 2022

androidx.room:room-*:2.5.0-alpha01 yayınlandı. Sürüm 2.5.0-alpha01 bu kaydetmeleri içerir.

API Değişiklikleri

  • Oda @IntDef kullanımının Kotlin kaynaklarında zorunlu kılınmamasına neden olan sorun düzeltildi. (I75f41, b/217951311)
  • Mülk alıcılarında @Query iznini yeniden etkinleştirmek için bir kaynak uyumluluğu sorunu düzeltildi. (I0a09b)
  • Ortak oda, Java'dan Kotlin'e dönüştürüldü. (I69c48, b/206858235)

    Not: Kitaplık Kotlin'e dönüştürülürken bazı mülkler tamamlayıcı nesnelere taşındığından kaynak uyumsuzluğu sorunlarıyla karşılaşabilirsiniz. Kodunuz Kotlin'deyse ve Oda'nın eski sürümünü çağırıyorsa yeni sürümde bu özelliklere erişirken ".Companion" son eki gerekecektir.

  • Oda taşıma işlemi Java'dan Kotlin'e dönüştürüldü. (I2724b, b/206858622)
  • room-runtime ile ilgili paging dosya Java'dan Kotlin'e dönüştürüldü. (I82fc8, b/206859668)
  • Çok işlemli ilk veritabanı oluşturma ve taşıma işlemlerini korumak amacıyla, FrameworkSQLite* düzeyinde çoklu işlem kilidi ve kullanım için API eklendi. (Ied267, b/193182592)

Hata Düzeltmeleri

  • Kotlin kaynaklarındaki dahili mülkler için destek eklendi. Bu, Odada işlevlerin kaynak adını kullanır ve bunları alıcılar/ayarlayıcı olarak özelliklerle eşleştirir (önceden, dahili işlevler/özellikler için farklı olan işlevin JVM adını kullanırdı). Alıcıları/ayarlayıcıları özel mülklerle eşleştirmek için özel @JvmName ek açıklamaları kullanıyorsanız lütfen güncellemeden sonra oluşturulan kodu tekrar kontrol edin (If6531, b/205289020)

Sürüm 2.4.3

Sürüm 2.4.3

27 Temmuz 2022

androidx.room:room-*:2.4.3 yayınlandı. Sürüm 2.4.3 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Odanın, Kotlin 1.7'de (b/236612358) askıya alma işlevlerini tanımamasına neden olan bir sorun düzeltildi

Sürüm 2.4.2

Sürüm 2.4.2

23 Şubat 2022

androidx.room:room-*:2.4.2 yayınlandı. Sürüm 2.4.2 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • -Xjvm-default=all veya eşdeğeri derleme nedeniyle varsayılan arayüz yöntemi oluşturan bir gövdeye sahip Dao @Transaction askıya alma işlevi için kod oluşturma sorununu düzeltin. (Ia4ce5)
  • Odanın, Array<ByteArray> dönüş türü sorgu yöntemi için kod oluşturduğu hata gideriliyor. (If086e, b/213789489)

Sürüm 2.4.1

Sürüm 2.4.1

12 Ocak 2022

androidx.room:room-*:2.4.1 yayınlandı. Sürüm 2.4.1 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Kotlin kaynaklarındaki dahili mülkler için destek eklendi. Bu, Odada işlevlerin kaynak adını kullanır ve bunları alıcılar/ayarlayıcı olarak özelliklerle eşleştirir (önceden, dahili işlevler/özellikler için farklı olan işlevin JVM adını kullanırdı). Alıcıları/ayarlayıcıları özel mülklerle eşleştirmek için özel @JvmName ek açıklamaları kullanıyorsanız lütfen güncellemeden sonra oluşturulan kodu tekrar kontrol edin (If6531, b/205289020)

Sürüm 2.4.0

Sürüm 2.4.0

15 Aralık 2021

androidx.room:room-*:2.4.0 yayınlandı. 2.4.0 sürümü bu kaydetmeleri içerir.

2.3.0'dan bu yana önemli değişiklikler

  • Otomatik Taşıma İşlemleri: Odada artık, şemalar dışa aktarıldığı sürece taşıma işlemlerinin otomatik olarak oluşturulması için bir API sunulmaktadır. Odanın otomatik taşıma işlemi oluşturması gerektiğini bildirmek için, yeni bir @Database#autoMigrations mülkü kullanarak hangi sürümlerden hangilerine otomatik olarak taşıma yapılacağını bildirebilirsiniz. Oda, tablolar ve sütunların yeniden adlandırılması veya silinmesiyle ilgili ek bilgiye ihtiyaç duyduğunda @AutoMigration ek açıklaması bu tür girişleri içeren bir spesifikasyon sınıfı bildirebilir. Daha fazla bilgi için @AutoMigration dokümanlarına bakın.
  • Otomatik Taşıma İşlemlerinde Bağımlılık Ekleme: @ProvidedAutoMigrationSpec, çalışma zamanında RoomDatabase.Builder#addAutoMigrationSpec() aracılığıyla bir AutoMigrationSpec sağlanacağını beyan eden yeni bir API'dir. Böylece karmaşık bağımlılıklara ihtiyaç duyulduğunda bu tür özellikleri sağlamak için bağımlılık yerleştirme çerçevesi kullanılabilir.
  • Otomatik Taşıma İşlemleri İçin Taşıma Testi Yardımcısı Desteği: Odanın MigrationTestHelper değeri, test altındaki veritabanı sınıfını alan yeni bir oluşturucu API sağlanarak otomatik taşımaları destekleyecek şekilde güncellendi. Bu, yardımcının runMigrationsAndValidate sırasında otomatik taşıma işlemlerini aynı şekilde otomatik olarak eklemesine olanak tanır.
  • Oda Çağrısı Desteği: androidx.room:room-paging aboneliği iptal edildi ve androidx.paging.PagingSource döndüren Oda sorguları için yerel Sayfalama 3.0 desteği sağlandı.
  • İlişkisel Sorgu Yöntemleri: Oda, artık JOIN ifadeleri için yararlı olan çoklu harita döndürme türleri @Dao yöntemlerini destekliyor. Desteklenen çoklu harita türleri şunlardır: Map, SparseArray, LongSparseArray ve Guava'nın ImmutableMap, ImmutableSetMultimap ve ImmutableListMultimap.

Sürüm 2.4.0-rc01

1 Aralık 2021

androidx.room:room-*:2.4.0-rc01 yayınlandı. Sürüm 2.4.0-rc01 bu kaydetmeleri içerir.

Yeni Özellikler

  • Kotlin 1.6 sürümünü desteklemek için Room'un KSP'ye olan bağımlılığını 1.6.0-1.0.1 olarak güncelleyin

Sürüm 2.4.0-beta02

17 Kasım 2021

androidx.room:room-*:2.4.0-beta02 yayınlandı. Sürüm 2.4.0-beta02 bu kaydetmeleri içerir.

Yeni Özellikler

  • @MapInfo'ya SparseArray ve LongSparseArray için destek ekledik. (Ic91a2b/138910317)

Hata Düzeltmeleri

  • Türlerdeki boş değer atanabilirlik bilgilerini dikkate alan yeni bir TypeConverter analiz edici ekledik. Bu bilgiler yalnızca KSP'de kullanılabildiğinden, varsayılan olarak yalnızca KSP'de etkindir. Herhangi bir soruna neden olursa ek açıklama işlemcisineroom.useNullAwareTypeAnalysis=false değerini ileterek bu özelliği kapatabilirsiniz. Bu durumda, bu işaret ileride kaldırılacağı için lütfen hata bildiriminde bulunun. Bu yeni TypeConverter analizciyle, yeni analizci bunları null check ile sarmalayabildiği için yalnızca null olmayan Alıcı TypeConverter'ların sağlanması önerilir. Bu durumun, ek açıklama işlemcisi olarak KAPT veya Java'yı kullanan kullanıcılar için (KSP'nin aksine) herhangi bir etkisi olmadığını unutmayın. Türlerde boş değer atanabilirlik bilgisi yoktur. (Ia88f9, b/193437407)
  • Bir FTS varlığının ICU jeton oluşturucuyu kullandığını belirttiğinde Odanın SQL hatasıyla derleme hatasına neden olduğu hatayı düzeltin. (I00db9, b/201753224)
  • Sürümler arasında yerleştirilmiş bir varlığa eklenen yeni bir sütunla ilgili otomatik taşıma işlemlerinde sorun çözüldü. (I5fcb1b/193798291)
  • LEFT JOIN sorgularındaki ilişkisel sorgu yöntemi döndürme türleriyle ilgili bir sorunu çözdük. Bu değişikliklerle, 1-çok sayıda eşlemenin bulunduğu durumlarda, bir anahtar için döndürülen koleksiyon, imleçte bulunmayan geçersiz değer nesnesini içermeyecektir. Geçerli değer bulunamazsa bir anahtar, boş bir koleksiyona eşlenir. (Id5552b/201946438)
  • SQLite anahtar kelimelerinin sütun adlarında kod dışına alınamadığı otomatik taşıma sorunu çözüldü. (Idbed4b/197133152)

Sürüm 2.4.0-beta01

13 Ekim 2021

androidx.room:room-*:2.4.0-beta01 yayınlandı. Sürüm 2.4.0-beta01 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Aynı otomatik taşıma işlemindeki başka bir tabloda aynı ada sahip yeni bir sütun olduğunda, otomatik taşıma işlemlerinde yeni sütun eklenmemesiyle ilgili sorun düzeltildi. (Ia5db5, b/200818663)
  • Oda sayfalama tarafından oluşturulan PagingSource uygulaması, artık RoomDatabase.Builder üzerinden iletilen queryExecutor yöntemini kullanır. Böylece önceden Dispatchers.IO yerine geçersiz kılınabilir. (Iae259)

Sürüm 2.4.0-alpha05

29 Eylül 2021

androidx.room:room-*:2.4.0-alpha05 yayınlandı. 2.4.0-alpha05 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

API Değişiklikleri

  • Geliştiricilerin yerleşik Enum ve UUID dönüştürücülerini devre dışı bırakmasına olanak tanımak için TypeConverters ek açıklamasına yeni bir özellik eklendi. Bu dönüştürücüler varsayılan olarak etkindir, ancak belirli bir kapsam veya veritabanının tamamı için devre dışı bırakabilirsiniz. Ayrıntılar için TypeConverters belgelerine bakın. (36ae9e, b/195413406)

  • @MapInfo ek açıklaması aracılığıyla DAO'lardaki çoklu eşleme dönüş türleri için POJO olmayan anahtarları/değerleri destekleme. (I4d704)

Haritanın anahtar veya değer sütunu tek bir sütundan olduğunda @MapInfo gerekir. Örneği inceleyin:

@MapInfo(valueColumn = "songCount")
@Query("""
       SELECT *, COUNT(mSongId) as songCount
       FROM Artist JOIN Song ON Artist.artistName = Song.artist
       GROUP BY artistName
       """)
fun getArtistAndSongCounts(): Map<Artist, Integer>
  • Paging3'ü Room ile kullanırken room-paging öğesini gerekli bir yapı haline getirin. (Ieaffe)

Hata Düzeltmeleri

  • Sorgu, harita anahtarındaki bir sütunun ORDER BY ifadesini içerdiğinde, çoklu eşleme sorgularının sonuçlarının doğru sıralanmamasına neden olan sorun düzeltildi. (I6b887)

Harici Katkı

  • @Dizin'de dizin sırasını belirtmek üzere yeni API eklendi. Nikita Zhelonkin'e teşekkürler. (I033fc)

Sürüm 2.4.0-alpha04

21 Temmuz 2021

androidx.room:room-*:2.4.0-alpha04 yayınlandı. 2.4.0-alpha04 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • Oda, artık JOIN ifadeleri için kullanışlı olan çoklu eşleme dönüş türleri @Dao yöntemlerini destekliyor. Desteklenen çoklu harita türleri şunlardır: Map ve Guava'nın ImmutableMap, ImmutableSetMultimap ve ImmutableListMultimap.

    Aşağıda, çoklu eşleme sorgularının örnekleri verilmiştir:

    Bire Bir İlişki Haritası

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

    Bire-Birden Çok İlişki Haritası (Standart çoklu harita)

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

    Çoklu eşleme sonucu LiveData, Rx'in Observable veya eş yordamları Flow gibi desteklenen eşzamansız dönüş türlerinde de sarmalanabilir.

Oda Çağrısı

  • androidx.paging.PagingSource döndüren Oda sorguları için yerel Sayfalandırma 3.0 desteği sağlayan androidx.room:room-paging yayınlandı.

    @Dao
    interface UserDao {
      @Query("SELECT * FROM users ORDER BY id ASC")
      fun loadUsers(): PagingSource<Int, User>
    }
    
  • Bu yapı, Room tarafından oluşturulan androidx.paging.PagingSource uygulamasını, Paging 3.0 API'leri üzerine oluşturulan bir uygulamayla değiştirir. Yeni PagingSource uygulaması anahtarları farklı şekilde ayrıştırır. Bu nedenle, Room'un PagingSource'una manuel olarak sağlanan tüm anahtarların, Sayfa Aracı'nın oluşturucusu aracılığıyla iletilen initialKey de dahil olmak üzere, bu davranış değişikliğini hesaba katması gerekir. Sayfalar Key üzerinden yüklenmeye başlayacak ve Key, ilk yüklenen öğe olacak. Bu, LoadParams.Refresh.Key öğesinin kullanıcının kaydırma konumu olarak değerlendirildiği ve öğelerin anahtardan önce ve sonra yüklendiği mevcut davranıştan saptır.

  • Yapı isteğe bağlıdır ve devre dışı bırakma işlemi, Oda 2.3'te kullanıma sunulan mevcut Sayfalandırma 3.0 desteğinin yerine geçer. Ancak bu yapı, Sayfa 3.0 ile Oda kullananlar için gelecekteki sürümde isteğe bağlı olmayacak. Etkinleştirmek için yeni oda sayfa oluşturma yapısını sınıf yolunuza ekleyin. Gradle kullanıyorsanız build.gradle dosyanıza aşağıdaki snippet'i ekleyebilirsiniz:

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

Hata Düzeltmeleri

  • Otomatik taşıma işlemlerinde yabancı anahtar ihlallerinin ele alınmasıyla ilgili bir sorunu düzeltin. (b/190113935)

Sürüm 2.4.0-alpha03

16 Haziran 2021

androidx.room:room-*:2.4.0-alpha03 yayınlandı. 2.4.0-alpha03 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Odanın MigrationTestHelper öğesini, test edilen veritabanı sınıfını alan yeni bir oluşturucu API sağlayarak otomatik taşımaları destekleyecek şekilde güncelleyin. Bu, yardımcının runMigrationsAndValidate sırasında otomatik taşıma işlemlerini aynı şekilde otomatik olarak eklemesine olanak tanır.

Hata Düzeltmeleri

  • Apple'ın M1 çiplerini desteklemek için Odanın SQLite yerel kitaplığıyla ilgili sorun düzeltildi. (b/174695268

  • @Transaction işlevinin döndürme türü Akış olduğunda Oda hatasının oluşmaması sorunu düzeltildi (I56ddd, b/190075899)

  • Otomatik taşıma işlemlerinde dizinlerle ilgili bir sorunu düzeltin. b/177673291

Bağımlılık Güncellemeleri

  • Odanın KSP desteği artık KSP'ye (1.5.10-1.0.0-beta01) bağlı. (1ecb11, b/160322705)

Sürüm 2.4.0-alpha02

5 Mayıs 2021

androidx.room:room-*:2.4.0-alpha02 yayınlandı. 2.4.0-alpha02 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • @ProvidedAutoMigrationSpec, çalışma zamanında RoomDatabase.Builder#addAutoMigrationSpec() aracılığıyla AutoMigrationSpec sağlanacağını beyan etmek için kullanılan yeni bir API'dir. Böylece karmaşık bağımlılıklara ihtiyaç duyulduğunda bu tür özellikleri sağlamak için bağımlılık yerleştirme çerçevesi kullanılabilir.

Hata Düzeltmeleri

  • @DatabaseView öğelerinin düzgün şekilde yeniden oluşturulamadığı otomatik taşıma işlemleriyle ilgili bir sorun düzeltildi.

Harici Katkı

  • Odanın JournalMode.TRUNCATE özelliğinde InvalidationTracker geri çağırmasının bazen geçersiz bir şekilde, çok geç veya hiç çağrılmadığı sorunu düzeltin. Uli Bubenheimer | bubenheimer@users.noreply.github.com adlı kullanıcıya teşekkür ederiz (b/154040286)

Sürüm 2.4.0-alpha01

21 Nisan 2021

androidx.room:room-*:2.4.0-alpha01 yayınlandı. Sürüm 2.4.0-alpha01 bu kaydetmeleri içerir.

Yeni Özellikler

  • Otomatik Taşıma İşlemleri: Odada artık, şemalar dışa aktarıldığı sürece taşıma işlemlerinin otomatik olarak oluşturulması için bir API sunulmaktadır. Odanın otomatik taşıma işlemi oluşturması gerektiğini bildirmek için, yeni bir @Database#autoMigrations mülkü kullanarak hangi sürümlerden hangilerine otomatik olarak taşıma yapılacağını bildirebilirsiniz. Oda, tablolar ve sütunların yeniden adlandırılması veya silinmesiyle ilgili ek bilgiye ihtiyaç duyduğunda @AutoMigration ek açıklaması bu tür girişleri içeren bir spesifikasyon sınıfı bildirebilir. Diğer ayrıntılar için @AutoMigration belgelerini inceleyin.

Hata Düzeltmeleri

  • Odanın şema doğrulaması tarafından fazladan parantez içeren defaultValue öğesinin yanlışlıkla doğrulanmasına neden olan sorunu düzeltin. b/182284899

Sürüm 2.3.0

Sürüm 2.3.0

21 Nisan 2021

androidx.room:room-*:2.3.0 yayınlandı. 2.3.0 sürümü bu kaydetmeleri içerir.

2.2.0'dan bu yana önemli değişiklikler

  • Yerleşik Enum Desteği: Oda, artık varsayılan olarak Enum - Dize ve tam tersi bir dönüştürücü (hepsi sağlanmamışsa) kullanacaktır. Bir numaralandırma için tür dönüştürücü zaten varsa Oda, varsayılan türe göre onu kullanmaya öncelik verir.
  • Sorgu Geri Çağırması: Oda artık, sorguların yürütülmek üzere olduğu durumlarda kullanılmak üzere genel bir geri çağırma API'si (RoomDatabase.QueryCallback) sunuyor. Bu, hata ayıklama derlemelerine giriş yapmak için yararlı olabilir. Geri çağırma özelliği RoomDatabase.Builder#setQueryCallback() aracılığıyla ayarlanabilir.
  • Önceden Paketlenmiş İyileştirme: Odada artık, giriş akışından okunan önceden paketlenmiş bir veritabanını kullanarak veritabanı oluşturmaya yönelik API'ler bulunmaktadır. Bu, önceden paketlenmiş veritabanının gzip'lenmesi gibi durumlara olanak tanır.
  • Sağlanan Tür Dönüştürücüler: Odada artık, uygulamanın başlatma işlemini kontrol edebilmesi için tür dönüştürücü örnekleri sağlamak üzere API'ler bulunmaktadır. Oda'ya sağlanacak bir tür dönüştürücüyü işaretlemek için yeni @ProvidedTypeConverter ek açıklamasını kullanın.
  • RxJava3 Desteği: Oda artık RxJava3 türlerini destekliyor. RxJava2'ye benzer şekilde, dönüş türü Akışlı, Tek, Belki ve Uyumlu olan DAO yöntemlerini tanımlayabilirsiniz. Ayrıca, RxJava3'ü desteklemek için yeni bir androidx.room:room-rxjava3 yapısı kullanıma sunulmuştur.
  • Adım 3.0 Desteği: Oda, artık dönüş türü androidx.paging.PagingSource olan ek açıklamalı @Query yöntem için uygulama oluşturmayı destekleyecek.

Sürüm 2.3.0-rc01

24 Mart 2021

androidx.room:room-*:2.3.0-rc01 yayınlandı. Sürüm 2.3.0-rc01 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Oda tarafından oluşturulan Eşzamanlı Akış sorgularının, askıya alınan bir withTransaction blokunda kullanılmasını engelleyen bir sorun düzeltildi. (I797bf)

Sürüm 2.3.0-beta03

10 Mart 2021

androidx.room:room-*:2.3.0-beta03 yayınlandı. Sürüm 2.3.0-beta03 bu kaydetmeleri içerir.

Yeni Özellikler

Hata Düzeltmeleri

  • Ana iş parçacığında PagingSource oluşturmanın ANR'yi tetikleyebilmesine neden olan hata düzeltildi. (I42b74, b/181221318)
  • @ExperimentalRoomApi görünürlüğü, paket gizli yerine herkese açık olarak ayarlandı. (b/181356119)

Harici Katkı

  • Odanın, @SkipQueryVerification ek açıklaması da olduğunda @Query ek açıklamalı DAO yönteminde POJO dönüş türünü kabul etmesine izin verin. Oda, @RawQuery ek açıklamalı DAO yönteminde olduğu gibi sorgunun sonucunu POJO dönüş türüne dönüştürmek için elinden gelenin en iyisini yapar. "Markus Riegel | hey@marcorei.com" için teşekkürler. (I45acb)

Sürüm 2.3.0-beta02

18 Şubat 2021

androidx.room:room-*:2.3.0-beta02 yayınlandı. Sürüm 2.3.0-beta02 bu kaydetmeleri içerir.

Yeni Özellikler

  • Odada artık Kotlin Sembolü İşleme KSP için deneysel destek sunulmaktadır.

    KSP, KAPT'nin yerine geçerek ek açıklama işlemcilerini Kotlin derleyicide yerel olarak çalıştırarak derleme sürelerini önemli ölçüde kısaltır.

    Room'u KSP ile kullanmak için KSP Gradle eklentisini uygulayabilir ve derleme dosyanızdaki kapt yapılandırmasını ksp ile değiştirebilirsiniz. Örneğin, kapt 'androidx.room:room-compiler:2.3.0-beta02' yerine ksp 'androidx.room:room-compiler:2.3.0-beta02' kullanın. Daha fazla bilgi için KSP belgelerine bakın.

    KSP deneysel olduğundan, üretim kodu için yine de KAPT kullanmanızın önerildiğini unutmayın. Derleme sürelerinin kısaltılması yalnızca KAPT'yi kullanan başka işlemci yoksa geçerlidir. Bilinen sorunlar için b/160322705 adresine bakın.

Sürüm 2.3.0-beta01

27 Ocak 2021

androidx.room:room-*:2.3.0-beta01 yayınlandı. Sürüm 2.3.0-beta01 bu kaydetmeleri içerir.

Yeni Özellikler

  • Otomatik Kapatılabilir Veritabanları: Oda, artık belirli bir süre sonunda erişilmeyen veritabanlarını kapatma olanağına sahiptir. Bu, deneysel bir özelliktir ve RoomDatabase.Builder#setAutoCloseTimeout() aranarak etkinleştirilebilir. Bu özellik, birden fazla veritabanı olan uygulamalar için yararlıdır.

Hata Düzeltmeleri

  • Farklı çakışma stratejilerine sahip birden fazla @Update veya @Delete yöntemi içeren Dao yöntemlerinin, tanımlanan stratejilerden yalnızca biriyle kod oluşturmasına neden olan sorunu düzeltin. (I0b90d, b/176138543)

Sürüm 2.3.0-alpha04

16 Aralık 2020

androidx.room:room-*:2.3.0-alpha04 yayınlandı. 2.3.0-alpha04 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • Odada artık sorguların yürütülmek üzere olduğu durumlar için RoomDatabase.QueryCallback genel geri çağırma API'si sunuluyor. Bu API, hata ayıklama derlemelerine giriş yaparken faydalı olabilir. Geri çağırma özelliği RoomDatabase.Builder#setQueryCallback() aracılığıyla ayarlanabilir. (Iaa513, b/174478034, b/74877608)
  • Oda, artık varsayılan olarak Enum to String ve tersi türde dönüştürücü (hiçbiri sağlanmamışsa) kullanacaktır. Bir numaralandırma için tür dönüştürücü zaten varsa Oda, varsayılan türe göre onu kullanmaya öncelik verir. (b/73132006)

Bilinen Sorun

  • Sıralama için okumak üzere tek yönlü bir dönüştürücü zaten varsa Oda, yanlışlıkla yerleşik Dizeden Enum dönüştürücüyü (istenmeyebilir) kullanabilir. Bu bilinen bir sorundur ve iki yönlü dönüştürücü yapılarak giderilebilir. Bkz. b/175707691

Hata Düzeltmeleri

  • Odanın yeni JDK sürümlerinde artımlı ek açıklama işlemeyi yanlışlıkla devre dışı bırakmasına neden olan sorun düzeltildi. (b/171387388)
  • Birden fazla sınıf yükleyici kullanıldığında Odanın oluşturulan sınıfı bulmasıyla ilgili sorun düzeltildi. "Serendipity | 892449346@qq.com"! (b/170141113) düzeltmesi için teşekkür ederiz
  • Bir Kotlin @Dao öğesi, JVM'de jenerik öğeleri temel öğeler olan bir temel sınıfa sahip olduğunda Odanın yanlış kod oluşturmasına neden olan sorun düzeltildi. (b/160258066)

Harici Katkı

  • WAL modu etkinse ve API 16 veya daha fazlaysa oda artık varsayılan olarak beginTransactionNonExclusive kullanılacak. Ahmet I. Halil | ahmedibrahimkhali@gmail.com’! (b/126258791)

Sürüm 2.3.0-alpha03

14 Ekim 2020

androidx.room:room-*:2.3.0-alpha03 yayınlandı. 2.3.0-alpha03 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • Odada artık, uygulamanın başlatma işlemini kontrol edebilmesi için tür dönüştürücü örnekleri sağlamak için API'ler bulunuyor. Oda'ya sağlanacak bir tür dönüştürücüyü işaretlemek için yeni @ProvidedTypeConverter ek açıklamasını kullanın. "mzgreen yairobbe@gmail.com" adresine teşekkürler. (Ie4fa5, b/121067210)

  • Odada artık giriş akışından okunan önceden paketlenmiş bir veritabanını kullanarak veritabanı oluşturmak için API'ler bulunuyor. Bu, önceden paketlenmiş veritabanının gzip'lenmesi gibi durumlara olanak tanır. "Ahmed El-Helw ahmedre@gmail.com" hesabına teşekkürler (3e6792, b/146911060)

API Değişiklikleri

  • @ForeignKey ek açıklamasına eksik hedef eklendi ve bu hedef, @Entity ek açıklaması dışında kullanımını engelledi. (Buzlu1e)

  • RoomDatabase.java içindeki mCallbacks alanı artık gizli. (d576cb, b/76109329)

Hata Düzeltmeleri

  • TypeConverters’ın yalnızca sütunları / alanları dönüştürmek için kullanılabildiğini, satırları değil de dönüştürüldüğünü açıklığa kavuşturmak için TypeConverters dokümanlarında güncelleme yapın. (I07c56, b/77307836)

  • Dao'daki derleyici hatasını Kotlin "temel öğeleri" içeren genel bir süper türüyle düzeltmek için DaoProcessor güncellemesi. (Ice6bb, b/160258066)

  • İleti dizisini netleştirmek için gözlem ekleme/kaldırma yöntemleri dokümanlarını güncelleme (Ifd1d9, b/153948821)

  • Odanın, satır kimliği sütununu bildiren FTS tablolarını yanlış şekilde doğrulamasıyla ilgili sorunu düzeltin. (d62ebc, b/145858914)

Harici Katkılar

  • Türkçe (5746e3), b/68159494 ile ilgili büyük/küçük harf yerel ayar sorunlarını düzeltin

  • Android Lollipop'ta (d1cfc7, b/162431855) sorun yaşamamak için RoomDatabase içindeki ConcurrentHashMap bölümünü Collections.synchronizedMap() ile değiştirin

  • Önceden paketlenmiş bir veritabanı kopyalandığında onOpenPrepackagedDatabase geri çağırması ekleyin. (I1ba74, b/148934423)

Sürüm 2.3.0-alpha02

22 Temmuz 2020

androidx.room:room-*:2.3.0-alpha02 yayınlandı. 2.3.0-alpha02 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • RxJava3 Desteği: Oda artık RxJava3 türlerini destekliyor. RxJava2'ye benzer şekilde, dönüş türü Akışlı, Tek, Belki ve Uyumlu olan DAO yöntemlerini tanımlayabilirsiniz. Ayrıca, RxJava3'ü desteklemek için yeni bir androidx.room:room-rxjava3 yapısı kullanıma sunulmuştur. (b/152427884)

API Değişiklikleri

  • Kotlin Nesne sınıfında @TypeConverter tanımlama artık desteklenmektedir. (b/151110764)
  • Odanın artımlı ek açıklama işleme seçeneği artık varsayılan olarak AÇIK. (b/112110217)

Sürüm 2.3.0-alpha01

10 Haziran 2020

androidx.room:room-*:2.3.0-alpha01 yayınlandı. Sürüm 2.3.0-alpha01 bu kaydetmeleri içerir.

Yeni Özellikler

  • Adım 3.0 Desteği: Oda, artık dönüş türü androidx.paging.PagingSource olan ek açıklamalı @Query yöntemler için uygulama oluşturmayı destekleyecek.

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

API Değişiklikleri

  • @RewriteQueriesToDropUnusedColumns, Odanın bir sorgudaki "*" projeksiyonunu sonuçtaki kullanılmayan sütunları kaldıracak şekilde yeniden yazmasını sağlayan yeni ve kullanışlı bir ek açıklamadır.
  • room.expandProjection işlemci seçeneği kullanımdan kaldırıldı. Yıldız tahminleriyle oda optimizasyonu yapan sorguların yerine @RewriteQueriesToDropUnusedColumns kullanın. @RewriteQueriesToDropUnusedColumns değerinin, @Embedded alanı içeren döndürme türleriyle ilgili olarak sunulan sütun çakışması çözümünün room.expandProjection yerine geçmediğini unutmayın.

Hata Düzeltmeleri

  • Odanın, artımlı ek açıklama işlemcisini etkinleştirmek için kullanılan JDK sürümünü doğru şekilde algılayamamasına neden olan hata düzeltildi. Blaz Solar (me@blaz.solar) sayesinde (b/155215201)
  • Oda, ANTLR kullanan diğer işlemcilerle sürüm çakışmalarını önlemek için artık ANTLR bağımlılığını ek açıklama işlemcisine yerleştiriyor. (b/150106190)

Sürüm 2.2.6

Sürüm 2.2.6

16 Aralık 2020

androidx.room:room-*:2.2.6 yayınlandı. 2.2.6 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Odanın yeni JDK sürümlerinde artımlı ek açıklama işlemeyi yanlışlıkla devre dışı bırakmasına neden olan sorun düzeltildi. (b/171387388)

Sürüm 2.2.5

Sürüm 2.2.5

18 Mart 2020

androidx.room:room-*:2.2.5 yayınlandı. 2.2.5 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • MultiInstanceInvalidationService Direct BootAware'i seçin. "Mygod contact-git@mygod.be" hesabına teşekkürler (b/148240967)
  • Birden çok örnek geçersiz kılması etkinleştirildiğinde ve veritabanı bir FTS varlığı içerdiğinde kilitlenmeye neden olan bir hata düzeltildi. (b/148969394)
  • Oda ek açıklama işlemcisinde SQLite yerel kitaplıkları yüklenirken, paralel derlemeler nedeniyle derleyicinin kilitlenmesine neden olacak bir sorun düzeltildi. (b/146217083)

Sürüm 2.2.4

Sürüm 2.2.4

19 Şubat 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 ve androidx.room:room-testing:2.2.4 yayınlandı. Sürüm 2.2.4 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Eş yordamın işlem gerçekten başlamadan hemen iptal edilmesi halinde işlemlerin kilitlenmesine neden olacak şekilde askıya alınmasıyla ilgili sorun düzeltildi. (b/148181325)
  • JDK 9 ile derleme yaparken @Generated öğesinin yanlış şekilde kullanılmasıyla ilgili sorun düzeltildi. (b/146538330)
  • Kotlin'deki bir DAO arayüzünde somut bir işlev olduğunda Odanın yanlış kod oluşturmasına neden olan sorun düzeltildi. (b/146825845)

Sürüm 2.2.3

Sürüm 2.2.3

18 Aralık 2019

androidx.room:room-*:2.2.3 yayınlandı. Sürüm 2.2.3 bu kaydetmeleri içerir.

Hata düzeltmeleri

  • Odanın, herhangi bir taşıma işlemine geçmemiş ve şemasında dizinler içeren eski bir karma içeren veritabanını doğrulayamaması sorunu düzeltildi. (b/139306173)

Sürüm 2.2.2

Sürüm 2.2.2

20 Kasım 2019

androidx.room:room-*:2.2.2 yayınlandı. Sürüm 2.2.2 bu kaydetmeleri içerir.

Hata düzeltmeleri

  • 999'dan fazla satırla bire bir ilişki toplanmasının, Odanın boş alakalı öğeler döndürmesine neden olmasına neden olan hata düzeltildi. (b/143105450)

Sürüm 2.2.1

Sürüm 2.2.1

23 Ekim 2019

androidx.room:room-*:2.2.1 yayınlandı. Sürüm 2.2.1 bu kaydetmeleri içerir.

Hata düzeltmeleri

  • Odanın, derleyici seçeneğiexpandProjection etkinken CURSOR_MISMATCH hakkında yanlışlıkla uyarı vermesine neden olan hata düzeltildi. (b/140759491)
  • Derleme süresi sırasında sorguları doğrulamak için kullanılan eksik yerel kitaplığın işlenmesini sağlayan bir yeniden deneme mekanizması eklendi.

Sürüm 2.2.0

Sürüm 2.2.0

9 Ekim 2019

androidx.room:room-*:2.2.0 yayınlandı. 2.2.0 sürümü bu kaydetmeleri içerir.

2.1.0 sürümünden bu yana önemli değişiklikler

  • Önceden Paketlenmiş Veritabanı: Halihazırda doldurulmuş bir veritabanı dosyasıyla RoomDatabase oluşturmak için artık RoomDatabase.Builder bölgesinde iki yeni API kullanılabilir. createFromAsset(), önceden doldurulmuş veritabanı dosyasının APK'nın öğe klasöründe olduğu, createFromFile() dosyanın rastgele bir konumda olduğu durumlar için kullanılır. Bu API'lerin kullanılması, yıkıcı taşıma işlemlerinin davranışını değiştirir. Böylece, yedek taşıma sırasında Oda, önceden doldurulmuş veritabanını (varsa) yeniden kopyalamaya çalışır. Aksi takdirde, yedek olarak tüm tabloları çıkarıp yeniden oluşturur.b/62185732
  • Şema Varsayılan Değerleri: @ColumnInfo artık bir sütunun varsayılan değerini belirtmek için kullanılabilecek yeni bir defaultValue özelliğine sahip. Varsayılan değerler veritabanı şemasının bir parçasıdır ve belirtilmesi halinde taşıma işlemleri sırasında doğrulanır. b/64088772
  • Birden Çoka İlişki: @Relation artık yeni bir associateBy özelliğine sahip. Bu özellik, bir bağlantı tablosu (birleştirme tablosu olarak da bilinir) aracılığıyla sağlanması gereken bir ilişkiyi tanımlamak için kullanılan yeni @Junction ek açıklamasını alır. b/69201917
  • Bire Bir İlişkiler: @Relation ek açıklamasıyla birlikte List veya Set türünde olan POJO alanlarındaki kısıtlama kaldırılmış ve tek değerli ilişkilerin temsil edilmesine etkin bir şekilde izin verilmiştir. b/62905145
  • Hedef Varlık: @Insert, @Update ve @Delete DAO ek açıklamalarının artık yeni bir targetEntity mülkü var. Bu özellik, DAO yönteminin işlem yapacağı hedef tabloyu belirtmeye olanak tanır. Böylece bu DAO yöntemlerinin parametreleri, kısmi varlıklar olarak yorumlanacak rastgele POJO'lar olabilir. Pratikte bu, kısmi ekleme, silme ve güncelleme işlemlerine olanak tanır. b/127549506
  • Koordinat Akışı: @Query DAO yöntemleri artık Flow<T> dönüş türünde olabilir. Sorgudaki gözlemlenen tablolar geçersiz kılınırsa döndürülen Akış yeni bir değer grubu yeniden yayınlar. Channel<T> döndürme türüne sahip bir DAO işlevi tanımlamak hatadır. Oda, bunun yerine Flow öğesini kullanmanızı ve ardından Flow öğesini bir Channel öğesine dönüştürmek için komşu işlevleri kullanmanızı önerir. b/130428884
  • Gradle Artımlı Ek Açıklama İşleyici: Room artık bir Gradle ek açıklama işlemcisidir ve artırılabilirlik, room.incremental işlemci seçeneğinden etkinleştirilebilir. Daha fazla bilgi için Oda Derleyici Seçenekleri'ne bakın. Herhangi bir sorunla karşılaşırsanız lütfen buradan bir hata bildiriminde bulunun. Gelecekteki kararlı bir sürümde artırılabilirliği varsayılan olarak etkinleştirmeyi planlıyoruz. b/112110217
  • Genişleyen Projeksiyonlar: Odanın sorguyu yalnızca POJO döndüren türündeki sütunları içerecek şekilde yıldız projeksiyonuyla yeniden yazmasına neden olan yeni bir deneysel derleyici seçeneği room.expandProjection eklendi. Örneğin, yalnızca iki alan içeren SongIdAndTitle adlı bir POJO döndüren @Query("SELECT * FROM Song") içeren bir DAO yöntemi için. Ardından Room, sorguyu SELECT id, title FROM Song olarak yeniden yazar ve dönüş türünü karşılayacak minimum sütun grubu getirilir. Bu, temel olarak, sorgu döndürülen POJO türündeki herhangi bir alanla eşleşmeyen ekstra sütunlar döndürdüğünde gösterilen CURSOR_MISMATCH uyarısını ortadan kaldırır.

Sürüm 2.2.0-rc01

5 Eylül 2019

androidx.room:room:2.2.0-rc01 yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

2.2.0-beta01 adlı odadan bu yana herkese açık değişiklik yok.

Sürüm 2.2.0-beta01

22 Ağustos 2019

androidx.room:room-*:2.2.0-beta01 yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

Hata düzeltmeleri

  • Eş yordam akışı sorgusunun belirli bir süre sonra yeni değerler göndermeyi durdurmasına neden olan hata düzeltildi. (b/139175786)
  • Odanın, Oda 1.0'dan bu yana taşınmayan bir veritabanını açarken eski şema karma kodunu kabul etmemesi ve geçersiz şema nedeniyle çalışma zamanı kilitlenmesine neden olan hata düzeltildi. (b/139306173)

Sürüm 2.2.0-alpha02

7 Ağustos 2019

androidx.room:room-*:2.2.0-alpha02 yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

Yeni Özellikler

  • Koordinat Akışı: @Query DAO yöntemleri artık Flow<T> dönüş türünde olabilir. Sorgudaki gözlemlenen tablolar geçersiz kılınırsa döndürülen Akış yeni bir değer grubu yeniden yayınlar. Channel<T> döndürme türüne sahip bir DAO işlevi tanımlamak hatadır. Oda, bunun yerine Flow öğesini kullanmanızı ve ardından Flow öğesini bir Channel öğesine dönüştürmek için komşu işlevleri kullanmanızı önerir. b/130428884
  • Genişleyen Projeksiyonlar: Odanın sorguyu yalnızca POJO döndüren türündeki sütunları içerecek şekilde yıldız projeksiyonuyla yeniden yazmasına neden olan yeni bir deneysel derleyici seçeneği room.expandProjection eklendi. Örneğin, yalnızca iki alan içeren SongIdAndTitle adlı bir POJO döndüren @Query("SELECT * FROM Song") içeren bir DAO yöntemi için. Ardından Room, sorguyu SELECT id, title FROM Song olarak yeniden yazar ve dönüş türünü karşılayacak minimum sütun grubu getirilir. Bu, temel olarak, sorgu döndürülen POJO türündeki herhangi bir alanla eşleşmeyen ekstra sütunlar döndürdüğünde gösterilen CURSOR_MISMATCH uyarısını ortadan kaldırır.
  • onDestructiveMigrate, Odanın bir veritabanını yıkıcı bir şekilde taşıması için RoomDatabase.Callback içine eklenen yeni bir geri çağırma API'sidir. b/79962330

Hata Düzeltmeleri

  • Alan korunurken Odanın alan belirleyici olarak bir yöntem kullanarak yanlış kod oluşturmasına neden olan hata düzeltildi. b/136194628
  • Birden çok örnek geçersiz kılma etkinleştirildiğinde ve geçersiz kılma Hizmeti sonlandırıldığında InvalidationTracker'ın ikinci bir işlemde NPE bildirmesine neden olan bir hata düzeltildi. b/137454915
  • Odanın, @RawQuery ek açıklamasıyla birlikte devralınan askıya alma işlevinin döndürme türünü doğru şekilde tanımlamamasına neden olan hata düzeltildi. b/137878827
  • İlgili anahtar BLOB türünde olduğunda @Relation için oluşturulan kod, karşılaştırılabilir bir ByteBuffer kullanacak şekilde güncellendi. b/137881998
  • Odanın @Insert, @Update ve @Delete için kısmi varlık parametreleri olarak kullanılan POJO'larda eksik belirleyicilerden şikayet ettiği hata düzeltildi. b/138664463
  • Varlık sınıfı belirli DAO yöntemlerinde kullanıldığında, Odanın @Entity aracılığıyla yoksayılan bir sütun için eksik alıcılar ve belirleyicilerden şikayet ettiği hata düzeltildi. b/138238182
  • Odanın adlandırılmış bağlama bağımsız değişkenlerini, yeniden kullanılan parametrelerle sorgu yürütürken çalışma zamanı istisnasına neden olan konumsal bağımsız değişkenlere doğru şekilde dönüştürmemesine neden olan hata düzeltildi. b/137254857

Sürüm 2.2.0-alpha01

10 Temmuz 2019

Yeni Özellikler

  • Önceden Paketlenmiş Veritabanı: Halihazırda doldurulmuş bir veritabanı dosyasıyla RoomDatabase oluşturmak için artık RoomDatabase.Builder bölgesinde iki yeni API kullanılabilir. createFromAsset(), önceden doldurulmuş veritabanı dosyasının APK'nın öğe klasöründe olduğu, createFromFile() dosyanın rastgele bir konumda olduğu durumlar için kullanılır. Bu API'lerin kullanılması, yıkıcı taşıma işlemlerinin davranışını değiştirir. Böylece, yedek taşıma sırasında Oda, önceden doldurulmuş veritabanını (varsa) yeniden kopyalamaya çalışır. Aksi takdirde, yedek olarak tüm tabloları çıkarıp yeniden oluşturur.b/62185732
  • Şema Varsayılan Değerleri: @ColumnInfo artık bir sütunun varsayılan değerini belirtmek için kullanılabilecek yeni bir defaultValue özelliğine sahip. Varsayılan değerler veritabanı şemasının bir parçasıdır ve belirtilmesi halinde taşıma işlemleri sırasında doğrulanır. b/64088772

    Not: Veritabanı şemanızda zaten varsayılan değerler (ALTER TABLE x ADD COLUMN y INTEGER NOTNULL DEFAULT z aracılığıyla eklenenler gibi) varsa ve @ColumnInfo aracılığıyla aynı sütunlarda varsayılan değerler tanımlamaya karar verirseniz hesaba katılmayan varsayılan değerleri doğrulamak için bir taşıma işlemi gerçekleştirmeniz gerekebilir. Daha fazla bilgi için Oda Taşıma İşlemleri bölümüne bakın.

  • Birden Çoka İlişki: @Relation artık yeni bir associateBy özelliğine sahip. Bu özellik, bir bağlantı tablosu (birleştirme tablosu olarak da bilinir) aracılığıyla sağlanması gereken bir ilişkiyi tanımlamak için kullanılan yeni @Junction ek açıklamasını alır. b/69201917
  • Bire Bir İlişkiler: @Relation ek açıklamasıyla birlikte List veya Set türünde olan POJO alanlarındaki kısıtlama kaldırılmış ve tek değerli ilişkilerin temsil edilmesine etkin bir şekilde izin verilmiştir. b/62905145
  • Hedef Varlık: @Insert, @Update ve @Delete DAO ek açıklamalarının artık yeni bir targetEntity mülkü var. Bu özellik, DAO yönteminin işlem yapacağı hedef tabloyu belirtmeye olanak tanır. Böylece bu DAO yöntemlerinin parametreleri, kısmi varlıklar olarak yorumlanacak rastgele POJO'lar olabilir. Pratikte bu, kısmi ekleme, silme ve güncelleme işlemlerine olanak tanır. b/127549506
  • Gradle Artımlı Ek Açıklama İşleyici: Room artık bir Gradle ek açıklama işlemcisidir ve artırılabilirlik, room.incremental işlemci seçeneğinden etkinleştirilebilir. Daha fazla bilgi için Oda Derleyici Seçenekleri'ne bakın. Herhangi bir sorunla karşılaşırsanız lütfen buradan bir hata bildiriminde bulunun. Gelecekteki kararlı bir sürümde artırılabilirliği varsayılan olarak etkinleştirmeyi planlıyoruz. b/112110217

Hata Düzeltmeleri

  • Bir sorgunun Rx akışı sorgu tamamlanmadan kaldırıldığında oda, EmptySetResultException öğesini genel hata işleyiciye iletmez. b/130257475
  • @RawQuery ek açıklamasına sahip askıya alma işlevinde döndürme türü olmadığında Odanın yanlış hata mesajı göstermesine neden olan hata düzeltildi. b/134303897
  • Oda, artık ham türlerle DAO bağdaştırıcıları oluşturmayacak. b/135747255

Sürüm 2.1.0

Sürüm 2.1.0

13 Haziran 2019

2.1.0-rc01 adlı binada herhangi bir değişiklik yapılmadan 2.1.0 odası iptal edildi. Sürümde yer alan taahhütlere buradan ulaşabilirsiniz.

2.0.0'dan bu yana önemli değişiklikler

  • FTS: Oda, artık FTS3 veya FTS4 eşleme tablosuna sahip varlıkları destekliyor. Eşleme tam metinli arama tablosu olan bir sınıfı tanımlamak için @Entity ile ek açıklama eklenen sınıflara artık @Fts3 veya @Fts4 ile ek açıklama eklenebilir. Daha fazla özelleştirme için FTS seçeneklerine ek açıklamanın yöntemleri aracılığıyla erişilebilir.
  • Görünümler: Oda artık @DatabaseView ek açıklaması kullanılarak bir sınıfın görünüm olarak da bilinen depolanmış sorgu olarak tanımlanmasını destekliyor.
  • Ders içerikleri: DAO yöntemleri artık askıya alma işlevleri olabilir. Bu işlevden yararlanmak için bağımlılıklarınıza room-ktx ekleyin. ktx yapısı, bir eş yordam içinde veritabanı işlemlerini gerçekleştirmek için RoomDatabase.withTransaction uzantı işlevini de sağlar.
  • Otomatik değer: Oda, artık AutoValue ek açıklamalı sınıfların varlık ve POJO olarak bildirilmesini destekliyor. @PrimaryKey, @ColumnInfo, @Embedded ve @Relation oda ek açıklamaları artık otomatik değer ek açıklaması olan sınıfın soyut yöntemlerinde tanımlanabilir. Room'un bunları doğru bir şekilde anlayabilmesi için bu ek açıklamayla birlikte @CopyAnnotations eklenmesi gerektiğini unutmayın.
  • Ek Eş Zamansız Destek: @Insert, @Delete veya @Update ile açıklama eklenen DAO yöntemlerinin yanı sıra INSERT, DELETE veya UPDATE ifadeleri içeren @Query, artık Completable, Single, Maybe Rx dönüş türlerini ve Guava'nın ListenableFuture dönüş türünü destekliyor. Ayrıca bunlar askıya alma işlevi de olabilir.
  • enableMultiInstanceInvalidation, aynı veritabanı dosyası kullanılarak birden fazla RoomDatabase örneğinde geçersiz kılma işlemini etkinleştirmek için RoomDatabase.Builder ürününde sunulan yeni bir API'dir.
  • fallbackToDestructiveMigrationOnDowngrade, RoomDatabase.Builder ürününde eski sürüme geçilmesi durumunda veritabanını otomatik olarak yeniden oluşturan yeni bir API'dir.
  • ignoredColumns, @Entity ek açıklamasındaki yeni bir API'dir ve yoksayılan alanları ada göre listelemek için kullanılabilir.
  • Oda, veri sınıflarında Kotlin'in birincil oluşturucusunu düzgün şekilde kullanır. Böylece özelliklerin vars olarak açıklanması gerekmez.

Sürüm 2.1.0-rc01

29 Mayıs 2019

Hata Düzeltmeleri

  • Zaten kurulu bir temp_store yapılandırması nedeniyle oluşabilecek Oda başlatma hatası düzeltildi. b/132602198
  • SQLite 3.27.0 ve sonraki sürümlere sahip kullanıcılar için çift tırnak kullanım uyarısı düzeltildi. b/131712640
  • Paralel olarak birden çok geçersizlik kontrolü gerçekleştiğinde InvalidationTracker'ın kilitlenmeye neden olmasına yol açan hata düzeltildi. b/133457594

Sürüm 2.1.0-beta01

7 Mayıs 2019

androidx.room 2.1.0-beta01, 2.1.0-alpha07 arasında herhangi bir değişiklik yapılmadan yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

Sürüm 2.1.0-alpha07

25 Nisan 2019

API / Davranış Değişiklikleri

  • RoomDatabase.withTransaction uzantı işlevi, artık alıcı olarak CoroutineScope içeren bir işlev bloğu almayacak şekilde değiştirildi. Böylece işlem bloğundaki öğeleri eşzamanlı olarak çalıştırmak için gereken ek coroutineScope { } sarmalayıcının atlanması önlenir.

Hata Düzeltmeleri

  • Odanın, Koleksiyon türü parametresi içeren bir Kotlin DAO işlevi için TypeConverter'ı eşleştirememesine neden olan hata düzeltildi. b/122066791

Sürüm 2.1.0-alpha06

22 Mart 2019

API / Davranış Değişiklikleri

  • Eşzamansız işlem sorguları artık Odanın veritabanı işlemlerini yürütmek için birden fazla iş parçacığı kullanmayacağı şekilde serileştirilmiştir. İşlemlerde kullanılacak yürütücünün yapılandırılmasına olanak tanımak için RoomDatabase.Builder.setTransactionExecutor(Executor) eklendi.
  • RoomDatabase.runInTransaction(Callable) artık işaretli istisnaları RuntimeExceptions şeklinde sarmalamaz. b/128623748

Hata Düzeltmeleri

  • Hem içerik tablosu hem de harici içerik FTS tablosu için gözlemciler eklendiğinde geçersiz kılma izleyicinin bir içerik tablosunu gözlemlemeyi durdurmasına neden olan hata düzeltildi. b/128508917
  • Odanın SQLite dil bilgisi, SQLite 3.24.0 ile eşleşecek şekilde güncellendi. b/110883668

Sürüm 2.1.0-alpha05

13 Mart 2019

Yeni Özellikler

  • RoomDatabase.withTransaction uzantı işlevi, veritabanı işlemlerini bir eş yordam içinde güvenli bir şekilde gerçekleştirmenize olanak tanır. room-ktx yapısında oda uzantısı işlevleri ve eş yordam desteği mevcuttur.
  • @Transaction ile not eklenen soyut olmayan DAO yöntemleri artık askıya alma işlevleri olabilir. b/120241587

API / Davranış Değişiklikleri

  • room-coroutines yapısı, diğer androidx yapılarıyla aynı ada sahip olacak şekilde room-ktx olarak yeniden adlandırıldı.
  • RoomDatabase bölgesindeki beginTransaction, setTransactionSuccessful ve endTransaction desteği sonlandırılarak runInTransaction ve room-ktx uzantı işlevi withTransaction kullanılmaya başlandı.

Hata Düzeltmeleri

  • Kullanılan jeton oluşturucu SIMPLE ise jeton oluşturucu bağımsız değişkenlerinin bırakılmasına neden olan hata düzeltildi. b/125427014
  • Odanın, türü iç sınıf olan parametrelere sahip askıya alma işlevlerini doğru şekilde tanımlayamamasına neden olan hata düzeltildi. b/123767877
  • INSERT, UPDATE veya DELETE ifadelerine sahip ertelenen @Query DAO yönteminin, sorguyu ana iş parçacığında istekle hazırlamasına neden olan hata düzeltildi. b/123695593
  • Odanın belirli askıya alma işlevleri için yanlış kod oluşturmasına neden olan çeşitli hatalar düzeltildi. b/123466702 ve b/123457323
  • Desteği sonlandırılan yöntem kullanımının, oluşturulan kodda doğru şekilde gösterilmemesine neden olan hata düzeltildi. b/117602586
  • androidx.sqlite öğesinin Oda bağımlılığı 1.0.2 olarak güncellendi. Bu sürüm, bozuk veritabanlarını doğru şekilde işlemeye yönelik düzeltmeler içeriyor. b/124476912

Bilinen Sorunlar

  • Oda 2.1.0-alpha05, şu anda Maven Central'da (KT-27991) bulunmayan kotlinx-metadata-jvm yapısına bağlıdır. Bu bağımlılık, proje depolarınıza maven { url "https://kotlin.bintray.com/kotlinx/" } ekleyerek çözülebilir.

Sürüm 2.1.0-alpha04

25 Ocak 2019

Yeni Özellikler

  • INSERT, UPDATE veya DELETE ifadeleri içeren @Query ek açıklamasıyla birlikte DAO yöntemleri artık Single, Mayble, Completable ve ListenableFuture eşzamansız türlerini döndürebiliyor. Ayrıca, askıya alma işlevleri de olabilirler. b/120227284

API / Davranış Değişiklikleri

  • @Transaction ile not eklenmiş soyut olmayan bir DAO yöntemi Single, Mayble, Completable, LiveData veya ListenableFuture gibi eşzamansız bir tür döndürürse oda artık bir hata verir. İşlemler iş parçacığıyla sınırlı olduğundan şu anda Odanın, farklı ileti dizilerinde sorgular gerçekleştirebilen bir işlevle ilgili işlem başlatması ve sonlandırması mümkün değildir. b/120109336
  • OnConflictStrategy.FAIL ve OnConflictStrategy.ROLLBACK, Android'in mevcut SQLite bağlamalarıyla amaçlandığı gibi davranmadığı için @Deprecated. b/117266738

Hata Düzeltmeleri

  • DAO yöntemi bir askıya alma işlevi olduğunda Room'un bir döndürme türünün TypeConverter öğesini doğru şekilde kullanmamasına neden olan hata düzeltildi. b/122988159
  • Odanın devralınan askıya alma işlevlerini yanlışlıkla askıya alma işlemi dışında olarak tanımlamasına neden olan hata düzeltildi. b/122902595
  • @Embedded alanı üst sınıfta olduğunda ve birden fazla alt sınıfta kullanıldığında Odanın yanlış kod oluşturmasına neden olan hata düzeltildi. b/121099048
  • beginTransaction() ile endTransaction() arasında DAO askıya alma işlevleri çağrılırken veritabanının kilitlenmesine neden olan sorun düzeltildi. b/120854786

Sürüm 2.1.0-alpha03

4 Aralık 2018

API Değişiklikleri

  • @Fts3/@Fts4 içindeki FTS tokenizer artık Enum yerine Dize alıyor. Bu, özel tokenleştiricilerin Room tarafından kullanılmasına olanak tanır. Yerleşik tokenleştiriciler, FtsOptions öğesinde dize sabitleri olarak tanımlanmaya devam etmektedir. b/119234881

Yeni Özellikler

  • Ders içerikleri: DAO yöntemleri artık askıya alma işlevleri olabilir. Odada askıya alma işlevlerini desteklemek için room-coroutines adlı yeni bir yapı yayınlandı. b/69474692
  • @Insert, @Delete veya @Update ile ek açıklama eklenen DAO yöntemlerinde artık dönüş türü olarak ListenableFuture destekleniyor. b/119418331

Hata Düzeltmeleri

  • Odanın yanlışlıkla @Entity öğesinin ignoredColumns özelliğinde sütunlara sahip bir oluşturucu bulmaya çalışmasına neden olan hata düzeltildi. b/119830714
  • Odanın, oluşturulan uygulamada DAO yöntemi parametrelerini nihai olarak işaretlememesine neden olan hata düzeltildi. b/118015483
  • Özel semboller içeren bir sorguda hata bildirirken Oda işlemcisinin kilitlenmesine neden olan hata düzeltildi. b/119520136
  • Odanın, IN ifadesinin bağımsız değişkenleri olarak diğer çeşitli Collection uygulamalarını reddetmesine neden olan hata düzeltildi. b/119884035
  • Odadan döndürülen LiveData'nın sonsuza kadar gözlemlendiğinde atık toplanması ve bu nedenle artık yeni veri yayınlamamasına yol açan hata düzeltildi. b/74477406
  • Kilit anlaşmazlığını azaltmak için RoomDatabase özelliğinin kapatma kilidi güncellendi. b/117900450

Sürüm 2.1.0-alpha02

30 Ekim 2018

Yeni Özellikler

  • @Relation içindeki bir @DatabaseView öğesine referans verme desteği eklendi. b/117680932

Hata Düzeltmeleri

  • Odanın, bir Rx dönüş türüne abone olurken ve bu türü atarken ana iş parçacığında disk G/Ç işlemi gerçekleştirdiği bir hata düzeltildi. b/117201279
  • Odanın, Kotlin varlık sınıfındaki bir alan için uygun türde bir dönüştürücü bulamamasına neden olan hata düzeltildi. b/111404868
  • Odanın, bağımsız değişkeni olmayan Kotlin varsayılan yöntemi içeren bir DAO arayüzü uygulaması için yanlış kod oluşturmasına neden olan hata düzeltildi. b/117527454
  • Odanın SQLite dil bilgisi ayrıştırıcısı güncellendi ve uzun derleme sürelerine neden olacak bir performans sorunu düzeltildi. b/117401230

Sürüm 2.1.0-alpha01

8 Ekim 2018

Yeni Özellikler

  • FTS: Oda, artık FTS3 veya FTS4 eşleme tablosuna sahip varlıkları destekliyor. @Entity ile not eklenen sınıflara artık eşleme tam metin arama tablosu içeren bir sınıfı bildirmek için @Fts3 veya @Fts4 ile ek açıklama eklenebilir. Daha fazla özelleştirme için FTS seçenekleri, ek açıklama yöntemleriyle kullanılabilir. b/62356416
  • Görünümler: Oda artık bir sınıfın depolanmış sorgu olarak, ayrıca @DatabaseView ek açıklaması kullanılarak görünüm olarak da tanımlanmasını destekliyor. b/67033276
  • Otomatik değer: Oda, AutoValue ek açıklamalı sınıfların varlık ve POJO olarak tanımlanmasını destekliyor. @PrimaryKey, @ColumnInfo, @Embedded ve @Relation oda ek açıklamaları artık otomatik değer ek açıklaması olan sınıfın soyut yöntemlerinde tanımlanabilir. Odanın doğru şekilde anlayabilmesi için bu ek açıklamayla birlikte @CopyAnnotations eklenmesi gerektiğini de unutmayın. b/62408420
  • Ek Rx Dönüş Türleri Desteği: @Insert, @Delete veya @Update ile ek açıklamalı DAO yöntemleri, artık Completable, Single<T> ve Maybe<T> Rx dönüş türlerini desteklemektedir. b/63317956
  • @Relation İçeren Sabit Türler: Odada, daha önce @Relation ek açıklamalı alanın ayarlanabilir olması gerekiyordu ancak artık kurucu parametreler olabilirler.
  • enableMultiInstanceInvalidation: RoomDatabase.Builder ürününde aynı veritabanı dosyası kullanılarak birden fazla RoomDatabase örneğinde geçersiz kılma işlemi yapılmasını sağlayan yeni bir API'dir. Bu çok örnekli geçersiz kılma mekanizması, birden fazla işlemde de çalışır. b/62334005
  • fallbackToDestructiveMigrationOnDowngrade: RoomDatabase.Builder ürününde, eski sürüme geçilmesi durumunda veritabanını otomatik olarak yeniden oluşturan yeni bir API'dir. b/110416954
  • ignoredColumns: @Entity ek açıklamasında, yoksayılan alanları ada göre listelemek için kullanılabilen yeni bir API'dir. Bir varlıktaki devralınan alanları yoksaymak için kullanışlıdır. b/63522075

API / Davranış Değişiklikleri

  • RoomDatabase kapsamındaki mCallback ve mDatabase artık @Deprecated ve Odanın bir sonraki ana sürümünde kaldırılacak. b/76109329

Hata Düzeltmeleri

  • Odanın bozuk veritabanından düzgün şekilde kurtarılamamasına veya başlatma sırasında hatalı bir taşıma işlemi yapılamamasına yol açan iki sorun düzeltildi. b/111504749 ve b/111519144
  • Oda, veri sınıflarında Kotlin'in birincil oluşturucusunu düzgün şekilde kullanır. Böylece, alanları vars olarak belirtme ihtiyacı ortadan kalkar. b/105769985

Sürüm 2.0.0

Sürüm 2.0.0

1 Ekim 2018

androidx.room 2.0.0, 2.0.0-rc01 arasında herhangi bir değişiklik yapılmadan yayınlandı.

Sürüm 2.0.0-rc01

20 Eylül 2018

androidx.room 2.0.0-rc01, 2.0.0-beta01 sürümünde herhangi bir değişiklik yapılmadan yayınlandı.

Sürüm 2.0.0-beta01

2 Temmuz 2018

API / Davranış Değişiklikleri

  • Sorguların çalıştırıldığı yerin özelleştirilmesine olanak tanımak için RoomDatabase.Builder.setQueryExecutor() eklendi
  • RxJava2 Observable desteği eklendi
  • Oluşturulan DAO ve Veritabanı uygulamaları artık nihai

Hata Düzeltmeleri

  • "Alan için alıcı bulunamıyor" hatasında b/73334503 sınıf/alan adını belirtin
  • RoomOpenHelper'ın, Oda b/110197391'in eski sürümleriyle geriye dönük uyumluluğu düzeltildi

AndroidX Öncesi Bağımlılıkları

Room'un AndroidX öncesi sürümleri için şu bağımlılıkları ekleyin:

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"
}

Sürüm 1.1.1

Sürüm 1.1.1

19 Haziran 2018

1.1.1 adlı oda, 1.1.1-rc1 adlı Oda ile aynı.

Sürüm 1.1.1-rc1

16 Mayıs 2018 Taşıma işlemini kullanıyorsanız 1.1.0 yerine 1.1.1-rc1 Odasını kullanmanızı önemle tavsiye ederiz.

Odanın, taşıma sonrası başlatma işlemini düzgün şekilde yapmamasına neden olan hata düzeltildi b/79362399

Sürüm 1.1.0

Sürüm 1.1.0-beta3

19 Nisan 2018

Hata Düzeltmeleri

  • Kotlin POJO, Java b/78199923'te tanımlanmış bir ilişki varlığına referans verdiğinde derleme hatasını düzeltme

Sürüm 1.1.0-beta2

5 Nisan 2018

Hata Düzeltmeleri

  • Room'un Rx Single ve Maybe uygulamalarında, sorgunun önceden geri dönüştürülmesine neden olan kritik bir hata düzeltildi. Bu hata, döndürülen Single veya Maybe durumlarına 1'den fazla gözlemci eklemeniz durumunda sorunlara neden oluyor. b/76031240

  • [RoomDatabase.clearAllTables][ref-clearAllTables], bir işlem içinde çağrılırsa veritabanını VACUUM yapmaz. b/77235565

Sürüm 1.1.0-beta1

21 Mart 2018

API Değişiklikleri

  • API İncelemesi geri bildirimine dayanarak @RawQuery artık sorgu parametresi olarak String iletmeyi kabul etmiyor. [SupportSQLiteQuery][ref-SupportSQLiteQuery] kullanmanız gerekir. (Bağımsız değişken desteğiyle [SupportSQLiteQuery][ref-SupportSQLiteQuery] örneğini kolayca oluşturmak için [SimpleSQLiteQuery][ref-SimpleSQLiteQuery]'ye bakın.)
  • RoomDatabase.Builder'ın [fallbackToDestructiveMigrationFrom][ref-fallbackToDestructiveMigrationFrom] yöntemi, vararg Integer yerine vararg int yöntemini kabul ediyor.

Hata Düzeltmeleri

  • [RoomDatabase.clearAllTables][ref-clearAllTables] artık bir WAL kontrol noktası ayarlayıp VACUUM veritabanını kullanarak işletim sistemine geri alan döndürmeye çalışır.
  • [@RawQuery][ref-RawQuery], Pojo'nun Embedded alanları veya Relation'leri aracılığıyla bir veya daha fazla varlığa referans verdiği sürece artık observedEntities mülkü için tüm Pojo'ları kabul ediyor. b/74041772
  • Sayfalandırma: Odanın DataSource uygulaması artık birden çok tablo içeren bağımlılıkları (ilişkiler ve birleştirmeler gibi) doğru şekilde işliyor. Daha önce bunlar yeni sonuçları tetiklemiyor veya derleyemiyordu. b/74128314

Sürüm 1.1.0-alpha1

22 Ocak 2018

Yeni Özellikler

  • RawQuery: Bu yeni API, @Dao yöntemlerinin SQL'i sorgu parametresi olarak b/62103290, b/71458963 olarak almasını sağlar
  • fallBackToDestructiveMigrationsFrom: RoomDatabase.Builder ürünündeki bu yeni API, hangi başlangıç şemalarının yıkıcı taşıma işlemlerine izin verileceği konusunda daha ayrıntılı kontrol sağlar (fallbackToDestructiveMigration ile karşılaştırıldığında) b/64989640
  • Oda, artık yalnızca daha yeni olan Paging API'lerini (alfa-4+) destekliyor. Desteği sonlandırılan LivePagedListProvider desteği sonlandırılıyor. Yeni Oda alfa sürümünü kullanmak için sayfalama alpha-4 veya daha yüksek bir sayfa kullanmanız ve henüz yapmadıysanız LivePagedListProvider değerinden LivePagedListBuilder değerine geçmeniz gerekir.

Hata Düzeltmeleri

  • Kotlin Kapt türleri için iyileştirilmiş destek. b/69164099
  • Alanların sırası artık şemayı geçersiz kılmıyor. b/64290754