Room

Oda kalıcılık kitaplığı, SQLite üzerinde bir soyutlama katmanı sağlayarak daha güçlü veritabanı erişimi sunar ve SQLite'ın tüm gücünden yararlanır.
Son Güncelleme Kararlı Sürüm Serbest Bırakma Adayı Beta Sürümü Alfa Sürümü
29 Kasım 2023 2.6.1 - - -

Bağımlılıkları bildirme

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

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

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

Groovy

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 dokümanlarına bakın.

KSP eklentisini kullanma hakkında bilgi edinmek için KSP hızlı başlangıç belgelerine bakın.

Kotlin uzantılarını kullanma hakkında bilgi edinmek için ktx belgelerini inceleyin.

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 dışı kitaplıklarda (ör. Java veya yalnızca Kotlin modülleriyle) Oda ek açıklamalarını kullanmak için androidx.room:room-common hizmetine güvenebilirsiniz.

Derleyici Seçeneklerini Yapılandırma

Odada aşağıdaki ek açıklama işlemcisi seçenekleri bulunur:

  • room.schemaLocation: Veritabanı şemalarını belirtilen dizindeki JSON dosyalarına aktarmayı yapılandırır ve etkinleştirir. Daha fazla bilgi için Oda Taşıma İşlemleri bölümüne bakın.
  • room.incremental: Gradle artımlı ek açıklama işlemcisini etkinleştirir.

Bu seçeneklerin nasıl yapılandırılabileceğine dair bir örnek aşağıdaki kod snippet'inde gösterilmektedir:

Modern

android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                arguments += [
                    "room.schemaLocation":"$projectDir/schemas".toString(),
                    "room.incremental":"true"
                    ]
            }
        }
    }
}

Kotlin

android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                arguments += mapOf(
                    "room.schemaLocation" to "$projectDir/schemas",
                    "room.incremental" to "true"
                )
            }
        }
    }
}

Geri bildirim

Geri bildirimleriniz Jetpack'i iyileştirmemize yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı geliştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni hesap oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.

Yeni sorun oluşturma

Daha fazla bilgi için Sorun İzleyici belgelerine bakı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 kayıtları içerir.

Hata Düzeltmeleri

  • Oluşturulan kodda, EntityCursorConverter sütunundaki varsayılan değerin 0,0 yerine 0 olarak ayarlanmasıyla ilgili sorun çözüldü. Kayan türdeki sütunlar için benzer bir kenar durumuyla ilgili olası bir düzeltme de dahil edilmiştir. (Id75f5, b/304584179)
  • PagingSource yüklemelerinden kaynaklanan istisnalar artık Atılabilir öğesi içeren LoadResult.Error öğesinin LoadStateUpdate öğesi olarak yayılacak. Bu hata durumu PagingDataAdapter.loadStateFlow(Views) veya LazyPagingItems.loadState(Compose) üzerinden gözlemlenebilir. Bunun, geçmişte yükleme hatalarının, yüklemeyi tetikleyen dao yöntemi tarafından atılan bir İstisna olarak kabaracağı bir davranış değişikliği 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ı. Sürüm 2.6.0 bu kayıtları içerir.

2.5.0'dan sonraki önemli değişiklikler

  • Kotlin kod oluşturmayı (veya "Kotlin CodeGen") etkinleştirme seçeneği artık Room KSP'de kullanılabilir. (4297ec0). Odada 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çeneklerini iletme hakkında daha fazla bilgi için KSP dokümanlarına bakın.

Not: Kotlin CodeGen'i kullanırken ilave kısıtlamaların bulunduğunu göz önünde bulundurmak önemlidir. Kotlin CodeGen'de DAO alıcıları veya DAO sorguları olarak soyut özelliklere izin verilmez ve bunun yerine, özellik değerinin sabit olduğu ve kayıtlı bir sonucun bulunduğu yanlış bir düşünceden kaçınmak için işlev olarak yeniden yazılması beklenir. Eklenen bir başka kısıtlama da Kotlin CodeGen için Room'da Nullable koleksiyon döndürme türlerine artık izin verilmemesidir.

Uyarı: Kotlin CodeGen'i kullanırken projelerinizin boş değer atanabilirliği açısından daha katı olduğunu görebilirsiniz. Kotlin CodeGen'de, tür bağımsız değişkenlerin boş değerli olması önemlidir. Java'da bu genellikle göz ardı edilir. Örneğin, "Akış<foo\>" dönüş türünün olduğunu ve tablonun boş olduğunu varsayalım. Bu işlem, Java CodeGen'de soruna neden olmaz ancak Kotlin CodeGen'de hata mesajı alırsınız. Bunu önlemek için, null değerinin yayıldığını varsayarak "Flow<foo?\>" öğesini kullanmanız gerekir. </foo?\></foo\>

  • Room Gradle Eklentisi için yeni yapı, androidx.room kimlikli Odaya eklendi. Bu yapı, Gradle ek açıklama işlemcisi seçenekleri aracılığıyla şema giriş ve çıkışlarının olmasıyla ilgili Oda'da mevcut olan çeşitli sorunları çözmektedir. Daha ayrıntılı bilgi için Oda Sürümü 2.6.0-alpha02 sürüm notlarına bakın.
  • Oda Varlıkları'ndaki değer sınıfları artık KSP için desteklenmektedir. (4194095)
  • DAO işlevlerindeki 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ı. Sürüm 2.6.0-rc01 bu kayıtları içerir.

Sürüm 2.6.0-beta01

23 Ağustos 2023

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

Hata Düzeltmeleri

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

Sürüm 2.6.0-alpha03

9 Ağustos 2023

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

Yeni Özellikler

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

API Değişiklikleri

  • @MapInfo öğesinin yerini alması için @MapColumn adında yeni bir tür ek açıklaması oluşturuldu ve bu ek açıklama kullanımdan kaldırıldı. @MapInfo ek açıklamasında sağlanan her 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 önleme ek açıklaması içerecek şekilde güncellendi (I8e87a, b/287516207)
  • Room Gradle eklentisi API'leri, her zaman varyant başına 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. Ayrıca, eklentinin avantajlarını (yeniden oluşturulabilir ve önbelleğe alınabilir derlemeler) korurken, türlerin manuel olarak yapılandırılması veya derleme türü şemalarının yapılandırılması için de yeterince esnektir. (I09d6f, b/278266663)

Hata Düzeltmeleri

  • QueryInterceptorStatement uygulamasında olası bellek sızıntısı güvenlik açığı düzeltildi. (193d1)
  • QueryInterceptorDatabase execSQL() işlevindeki yanlış davranış düzeltildi. (Iefdc8)

Sürüm 2.6.0-alpha02

21 Haziran 2023

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

Room Gradle Eklentisi

Bu yeni sürüm, androidx.room kimlikli Room Gradle Eklentisi için yeni bir yapı içeriyor. Bu yapı, Gradle ek açıklama işlemci seçenekleri aracılığıyla şema giriş ve çıkışlarının bulunmasıyla ilgili mevcut çeşitli sorunları çözmektedir. Room Gradle Eklentisi, projeyi otomatik taşımalar için kullanılan şemalar oluşturacak ve derleme görevlerinin çıktısı olacak şekilde, yeniden oluşturulabilir ve önbelleğe alınabilir derlemelere sahip olacak şekilde doğru şekilde yapılandırır. Eklenti, temel şema konumunu yapılandırmak için bir DSL sunar:

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

Eklenti, daha sonra Oda derleyicisini ve çeşitli derleme görevlerini ve arka uçlarını (javac, KAPT, KSP) şema dosyalarının çıkışını schemas/flavorOneDebug/com.package.MyDatabase/1.json gibi aromalı klasörlerde oluşturacak şekilde yapılandırır. Her zamanki gibi bu dosyalar, doğrulama ve otomatik taşıma işlemleri için kullanılmak üzere kod deposuna giriş yapar. Ek açıklama işlemci seçenekleri yerine eklentiyi kullanmaya geçildiğinde, mevcut şema dosyalarının eklenti tarafından oluşturulan özellik dizinlerine kopyalanması gerekir. Bu, manuel olarak yapılması gereken tek seferlik bir taşıma işlemidir. Gelecekte geri bildirimler dikkate alındıktan ve eklenti kararlı hale geldiğinde developers.android.com adresindeki şema dokümanları güncellenecektir. 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 veritabanını Roboecric'te örneklendirirken ortaya çıkan sorunu çözme. (Ic053c, b/274924903)

Sürüm 2.6.0-alpha01

22 Mart 2023

androidx.room:room-*:2.6.0-alpha01 yayınlandı. Sürüm 2.6.0-alpha01 bu kayıtları içerir.

Yeni Özellikler

  • KSP için Room'da değer sınıflarını destekleme. Room artık Varlıklar'da değer sınıflarını destekleyebiliyor. (4194095)
  • Kotlin kod oluşturma(veya "Kotlin CodeGen") artık Odada (4297ec0) etkinleştirilebilir. Odada 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çeneklerini iletme hakkında daha fazla bilgi için KSP dokümanlarına bakın.

Not: Kotlin CodeGen'i kullanırken ilave kısıtlamaların bulunduğunu göz önünde bulundurmak önemlidir. Kotlin CodeGen'de DAO alıcıları veya DAO sorguları olarak soyut özelliklere izin verilmez ve bunun yerine, özellik değerinin sabit olduğu ve kayıtlı bir sonucun bulunduğu yanlış bir düşünceden kaçınmak için işlev olarak yeniden yazılması beklenir. Eklenen bir başka kısıtlama da Kotlin CodeGen için Room'da Nullable koleksiyon döndürme türlerine artık izin verilmemesidir.

Uyarı: Kotlin CodeGen'i kullanırken projelerinizin boş değer atanabilirliği açısından daha katı olduğunu görebilirsiniz. Kotlin CodeGen'de, tür bağımsız değişkenlerin boş değerli olması önemlidir. Java'da bu genellikle göz ardı edilir. Örneğin, "Akış<foo\>" dönüş türünün olduğunu ve tablonun boş olduğunu varsayalım. Bu işlem, Java CodeGen'de soruna neden olmaz ancak Kotlin CodeGen'de hata mesajı alırsınız. Bunu önlemek için, null değerinin yayıldığını varsayarak "Flow<foo?\>" öğesini kullanmanız gerekir. </foo?\></foo\>

API Değişiklikleri

  • DAO yöntemi döndürme türlerinde boş değerli koleksiyonların anlamsız kullanımına karşı koruma sağlar. (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 yararlıdır. (I8c790, b/252899305)

Hata Düzeltmeleri

  • Soyut özelliklere, Kotlin kod oluşturucuda DAO alıcıları veya DAO sorguları olarak izin vermeyin. Bu özellikler, özellik değerinin sabit olduğu ve kayıtlı bir sonucun olduğu yanlış bir düşünceden kaçınmak için işlev olarak yeniden yazılmalıdır. (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 kayıtları içerir.

Hata Düzeltmeleri

  • kotlinx-metadata-jvm ile ilgili uyumsuzluk sorununu düzeltin. (386d5c)
  • Bir Robofactric testinde kullanılırken Room'un hata vermesine neden olan bir sorunu düzeltin. (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 kayıtları 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 isOpenInternal kontrolü kullanın. (e91fb35)
  • Odanın acquireTransactionThread() hesabında, geri katılan destek kaydının daha iyi bir şekilde ele alınması mümkün. (219f98b). Askıya alma işlemi sırasında Oda, işlem yürütücüsinden gelen bir iş parçacığını kullanır, içinde bir etkinlik döngüsü başlatır ve askıya alınan veritabanı işlemlerini bu işleme gönderir. Böylece tüm işlemler, işlem eş yordamı içine alınır. İşlem ileti dizisinin, işlemi başlatandan farklı olması beklenir, ancak bazı durumlarda aynıdır. Bu tür yeniden giriş durumları için withTransaction(), artık bir kontrol işine dayalı olmayacak şekilde yeniden düzenlendi ve askıya alma işlemi bloğunu işlem iş parçacığındaki 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 yayınlandı. Sürüm 2.5.0 bu kayıtları içerir.

Sürüm 2.5.0

11 Ocak 2023

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

2.4.0'dan sonraki ö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 uyuşmazlığı sorunlarıyla karşılaşabileceğinizi unutmayın. Örneğin, bilinen bir kaynak uyumsuz değişikliği, InvalidationTracker için Observer içindeki onInvalidate() öğesini MutableSet yerine Set türünde bir parametreye sahip olacak şekilde bildirmenizin gerekmesidir. Ayrıca, belirli getter yöntemleri Kotlin dosyalarında özellik erişimi söz dizimi gerektiren mülklere dönüştürüldü. Önemli düzeyde uyumsuzluklar varsa lütfen hata bildiriminde bulunun.
  • Benzersizlik çakışması olmadığında varlık eklemeye veya çakışma varsa varlığı güncellemeye çalışan yeni bir kısayol ek açıklaması (@Upsert) eklendi. (I7aaab, b/241964353)
  • Oda Sayfalama'da destek için room-paging-rxjava2, room-paging-rxjava3 ve room-paging-guava adlı yeni oda sayfalandırma yapıları eklendi.
  • @MapInfo ürününde belirsizliği gidermek amacıyla anahtar ve değer tablosu adlarını sağlamak için API'ler eklendi (Icc4b5)

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 kayıtları içerir.

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

Sürüm 2.5.0-beta02

9 Kasım 2022

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

API Değişiklikleri

  • Java'nın dizi davranışıyla eşleşmesi için sorgu bağımsız değişkenlerini sabit değerden (Array<Any?>) kontrasta (Array<out Any?>) 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ı. 2.5.0-beta01 sürümü bu kayıtları içerir.

API Değişiklikleri

  • @Upsert destekleyen minimum sürümü API 16 ile sınırlayın. Bunun nedeni, eski API'lerde birincil anahtar kısıtlama çakışmasının tanımlanamamasıdır. (I5f67f, b/243039555)

Hata Düzeltmeleri

  • Gölge tabloların şema .json dosyalarına yanlış şekilde aktarıldığı ve bunları bozan bir 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 kayıtları içerir.

Yeni Özellikler

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

Hata Düzeltmeleri

  • Otomatik taşıma yabancı anahtar kısıtlama kontrolü sırasında oda artık IllegalStateException yerine bir SQLiteConstraintException hatasına neden olacak. (I328dd)
  • getOpenHelper, getQueryExecutor ve getTransactionExecutor öğelerinin alıcısı / özellikleri için Kotlin kaynağı ile uyumlu olmayan bir 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ı. Sürüm 2.5.0-alpha02 bu kayıtları içerir.

Yeni Özellikler

API Değişiklikleri

  • room-runtime alanının tamamı Java'dan Kotlin'e dönüştürülmüştür. (If2069, b/206859668),(Ie4b55, b/206859668), (I697ee, b/206859668), (I96c25/628b}

    Not: Kitaplığın 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 uyumsuz değişikliği, InvalidationTracker için Observer içindeki onInvalidate() öğesini MutableSet yerine Set türünde bir parametreye sahip olacak şekilde bildirmenizin gerekmesidir.

  • @MapInfo ürününde belirsizliği gidermek amacıyla anahtar ve değer tablosu adlarını sağlamak için API'ler eklendi (Icc4b5)
  • Mülk alıcılarında @Ignore öğesine yeniden izin vermek için kaynak uyumluluğu sorununu düzeltin. (Ifc2fb)

Hata Düzeltmeleri

  • Yinelenen sütun çözünürlüğü sezgisel algoritması. Oda artık çoklu eşleme sorgusundaki belirsiz sütunları çözümlemeye çalışacak. Bu, aynı adlı tablolar içeren tablolara sahip JOIN'lerin bir sonuç veri nesnesiyle doğru bir şekilde eşlenmesini sağlar. (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 kayıtları içerir.

API Değişiklikleri

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

    Not: Kotlin'e kitaplık dönüştürme işlemi sırasında bazı mülkler tamamlayıcı nesnelere taşındığı için kaynak uyumsuzluğu sorunlarıyla karşılaşabilirsiniz. Kodunuz Kotlin'deyse ve Room'un eski sürümünü çağırıyorsa bu özelliklere erişirken yeni sürümde ".Companion" son ekinin kullanılması gerekir.

  • Java'dan Kotlin'e oda taşıma işlemi dönüştürüldü. (I2724b, b/206858622)
  • room-runtime içinde paging ilgili dosya Java'dan Kotlin'e dönüştürüldü. (I82fc8, b/206859668)
  • Çok işlemli ilk kez 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, Room'da işlevlerin kaynak adını kullanırken işlevleri alıcı/ayarlayıcı olarak mülklerle eşleştirecek küçük bir davranış değişikliğidir (daha önce dahili işlevler/özellikler için farklı olan işlevin JVM adını kullanıyordu). 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ı. 2.4.3 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

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

Sürüm 2.4.2

Sürüm 2.4.2

23 Şubat 2022

androidx.room:room-*:2.4.2 yayınlandı. 2.4.2 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • -Xjvm-default=all veya eşdeğeri ile yapılan derleme nedeniyle varsayılan arayüz yöntemi oluşturan bir gövdede Dao @Transaction askıya alma işlevi için kod üretme sorununu düzeltin. (Ia4ce5)
  • Room'un Array<ByteArray> dönüş türü sorgu yöntemi için kod oluşturduğu hatayı çözme. (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 kayıtları içerir.

Hata Düzeltmeleri

  • Kotlin kaynaklarındaki dahili mülkler için destek eklendi. Bu, Room'da işlevlerin kaynak adını kullanırken işlevleri alıcı/ayarlayıcı olarak mülklerle eşleştirecek küçük bir davranış değişikliğidir (daha önce dahili işlevler/özellikler için farklı olan işlevin JVM adını kullanıyordu). 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 kayıtları içerir.

2.3.0 sürümünden sonraki önemli değişiklikler

  • Otomatik Taşıma İşlemleri: Oda artık, şemalar dışa aktarıldığı sürece otomatik olarak taşıma işlemi oluşturan bir API sunmaktadır. Odaya otomatik taşıma işlemi oluşturması gerektiğini bildirmek için iki sürüm arasında otomatik taşıma işlemi tanımlamak üzere @Database#autoMigrations adlı yeni bir özellik kullanılabilir. Room; tablolar ve sütun yeniden adlandırma veya silme işlemleriyle ilgili ek bilgiye ihtiyaç duyduğunda, @AutoMigration ek açıklaması bu tür girişleri içeren bir spesifikasyon sınıfı bildirebilir. Ayrıntılı bilgi için @AutoMigration dokümanlarına bakın.
  • Otomatik Taşıma İşlemlerinde Bağımlılık Yerleştirme: @ProvidedAutoMigrationSpec, çalışma zamanında RoomDatabase.Builder#addAutoMigrationSpec() aracılığıyla bir AutoMigrationSpec sağlanacağını bildiren yeni API'dir. Bu durum, bir bağımlılık yerleştirme çerçevesinin karmaşık bağımlılıklara ihtiyaç duyduklarında bu tür spesifikasyonları sağlamasına olanak tanır.
  • Otomatik Taşıma İşlemleri İçin Taşıma Testi Yardımcı Desteği: Odanın MigrationTestHelper özelliği, test edilen veritabanı sınıfını alan yeni bir oluşturucu API sağlayarak otomatik taşıma işlemlerini destekleyecek şekilde güncellendi. Bu sayede yardımcı, runMigrationsAndValidate sırasında otomatik taşıma işlemlerini aynı şekilde otomatik olarak ekleyebilir.
  • Oda Hızı Desteği: androidx.paging.PagingSource değerini döndüren Oda sorguları için yerel Sayfalama 3.0 desteği sağlayan androidx.room:room-paging yayınlandı.
  • İlişkisel Sorgu Yöntemleri: Oda artık JOIN ifadeleri için yararlı olan çoklu eşleme dönüş türü @Dao yöntemlerini desteklemektedir. 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ı. 2.4.0-rc01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Kotlin 1.6'yı desteklemek için Odanın 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ı. 2.4.0-beta02 sürümü bu kayıtları içerir.

Yeni Özellikler

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

Hata Düzeltmeleri

  • Türlerdeki boş değer bilgilerini dikkate alan yeni bir TypeConverter analiz aracı 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 parametresini ileterek özelliği kapatabilirsiniz. Bu durumda lütfen dosya hatası verin çünkü bu işaret gelecekte kaldırılacaktır. Yeni analiz aracının bunları boş kontrolle sarmalayabilme olanağı olduğundan, bu yeni TypeConverter analiz aracı ile yalnızca null olmayan Alıcı TypeConverter'ların sağlanması önerilir. Bunun, ek açıklama işlemcisi olarak KAPT veya Java kullanan kullanıcıları (KSP'nin aksine) etkilemediğini ve türlerde null değer bilgisi bulunmadığını unutmayın. (Ia88f9, b/193437407)
  • Bir FTS varlığı, ICU belirteç oluşturucusunu kullandığı bildirildiğinde Room'un SQL hatasıyla derlenememesine neden olan hatayı düzeltin. (I00db9, b/201753224)
  • Sürümler arasında yerleştirilmiş bir varlığa yeni sütun eklenmesiyle ilgili otomatik taşıma işlemlerinde karşılaşılan 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 eşlemenin bulunduğu bir anahtar için döndürülen koleksiyon, imleçte bulunmayan geçersiz değer nesnesini içermez. Geçerli değer bulunamazsa anahtar, boş bir koleksiyonla eşlenir. (Id5552b/201946438)
  • SQLite anahtar kelimelerinde sütun adlarında çıkış yapılamayan 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ı. 2.4.0-beta01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Aynı otomatik taşıma işlemindeki başka bir tabloda aynı ada sahip yeni bir sütun bulunduğunda otomatik taşıma işlemlerinde yeni sütun eklememesiyle ilgili sorun giderildi. (Ia5db5, b/200818663)
  • Oda sayfalama tarafından oluşturulan PagingSource uygulaması artık RoomDatabase.Builder üzerinden geçirilen queryExecutor değerini kullandığından daha önce 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ı. Sürüm 2.4.0-alpha05 bu kayıtları 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 dokümanlarına bakın. (36ae9e, b/195413406)

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

Haritanın anahtar veya değer sütunu tek bir sütundan olduğunda @MapInfo gereklidir. Ö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'ü Oda ile kullanırken room-paging öğesini gerekli bir yapı haline getirin. (Ieaffe)

Hata Düzeltmeleri

  • Sorgu, harita anahtarındaki bir sütuna ait ORDER BY yan tümcesini içerdiğinde çoklu eşleme sorgu sonuçlarının doğru sıralanmamasına neden olan sorunu düzeltin. (I6b887)

Harici Katkı

  • @Index'te dizin sırasını belirtmek için yeni API eklendi. Nikita Zhelonkin'e teşekkür ederiz. (I033fc)

Sürüm 2.4.0-alpha04

21 Temmuz 2021

androidx.room:room-*:2.4.0-alpha04 yayınlandı. Sürüm 2.4.0-alpha04 bu kayıtları içerir.

Yeni Özellikler

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

    Aşağıda, çoklu eşleme sorgularına ilişkin örnekler verilmiştir:

    Bire Bir İlişki Haritası

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

    Bire-Ç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, desteklenen eşzamansız dönüş türlerinde de sarmalanabilir (ör. LiveData, Rx'in Observable veya eş yordamları Flow).

Odaya Çağrı

  • androidx.paging.PagingSource değerini döndüren Oda sorguları için yerel Sayfa 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'lerinin üzerine inşa edilmiş bir uygulamayla değiştirir. Yeni PagingSource uygulaması, anahtarları farklı şekilde ayrıştırır. Bu nedenle, Pager'ın oluşturucusu aracılığıyla iletilen initialKey dahil olmak üzere, Room'un PagingSource'a manuel olarak sağlanan anahtarların da bu davranış değişikliğini dikkate alması gerekir. Sayfalar Key konumundan yüklenmeye başlar. Yüklenen ilk öğe Key olacaktır. Bu, LoadParams.Refresh.Key özelliğinin kullanıcının kaydırma konumu olarak değerlendirildiği ve öğelerin hem anahtardan önce hem de sonra yüklendiği mevcut davranıştan farklıdır.

  • Yapı isteğe bağlıdır ve devre dışı bırakmak, Oda 2.3'te kullanıma sunulan mevcut Sayfa 3.0 desteğine geri döner. Ancak bu yapı, Room with Paging 3.0 kullananlar için gelecekteki sürümde isteğe bağlı olmayacak. Etkinleştirmek için yeni oda sayfası yapısını sınıf yoluna 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ı. Sürüm 2.4.0-alpha03 bu kaydetmeleri içerir.

API Değişiklikleri

  • Test edilen veritabanı sınıfını alan yeni bir oluşturucu API sağlayarak odanın MigrationTestHelper öğesini otomatik taşıma işlemlerini destekleyecek şekilde güncelleyin. Bu sayede yardımcı, runMigrationsAndValidate sırasında otomatik taşıma işlemlerini aynı şekilde otomatik olarak ekleyebilir.

Hata Düzeltmeleri

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

  • @Transaction işlevinin döndürülen türü Akış (I56ddd, b/190075899) olduğunda Oda'nın hata vermemesi sorunu düzeltildi

  • Dizinlerle ilgili otomatik taşıma işlemlerinde karşılaşılan bir sorunu düzeltin. b/177673291

Bağımlılık Güncellemeleri

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

Sürüm 2.4.0-alpha02

5 Mayıs 2021

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

API Değişiklikleri

  • @ProvidedAutoMigrationSpec, çalışma zamanında RoomDatabase.Builder#addAutoMigrationSpec() aracılığıyla bir AutoMigrationSpec sağlanacağını beyan eden yeni bir API'dir. Bu durum, bir bağımlılık yerleştirme çerçevesinin karmaşık bağımlılıklara ihtiyaç duyduklarında bu tür spesifikasyonları sağlamasına olanak tanır.

Hata Düzeltmeleri

  • Düzgün şekilde yeniden oluşturulmayan @DatabaseView'lere neden olan otomatik taşıma işlemlerinde karşılaşılan sorunu düzeltin.

Harici Katkı

  • Odanın JournalMode.TRUNCATE bölümünde, InvalidationTracker geri arama işleminin bazen geçersiz bir şekilde, çok geç çağrıldığı veya hiç çağrılmadığı bir sorunu düzeltin. Uli Bubenheimer | bubenheimer@users.noreply.github.com sayesinde (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 kayıtları içerir.

Yeni Özellikler

  • Otomatik Taşıma İşlemleri: Oda artık, şemalar dışa aktarıldığı sürece otomatik olarak taşıma işlemi oluşturan bir API sunmaktadır. Odaya otomatik taşıma işlemi oluşturması gerektiğini bildirmek için iki sürüm arasında otomatik taşıma işlemi tanımlamak üzere @Database#autoMigrations adlı yeni bir özellik kullanılabilir. Room; tablolar ve sütun yeniden adlandırma veya silme işlemleriyle 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 dokümanlarına bakın.

Hata Düzeltmeleri

  • Ekstra parantez içeren defaultValue öğesinin, Odanın şema doğrulaması tarafından yanlış bir şekilde 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 kayıtları içerir.

2.2.0 sürümünden sonraki önemli değişiklikler

  • Yerleşik Enum Desteği: Odada artık varsayılan olarak bir Enum'dan String'e ve tersi tür bir dönüştürücü kullanılmıyorsa varsayılan olarak kullanılacak. Bir enum için tür dönüştürücü zaten varsa Room, varsayılan dönüştürücü yerine bunu kullanmaya öncelik verir.
  • Sorgu Geri Çağırması: Oda artık, sorgular yürütülmek üzereyken hata ayıklama derlemelerine günlüğe kaydetmek için yararlı olabilecek genel bir RoomDatabase.QueryCallback API geri çağırması sunuyor. Geri arama, RoomDatabase.Builder#setQueryCallback() aracılığıyla ayarlanabilir.
  • Önceden Paketlenmiş İyileştirme: Odada, giriş akışından okunan önceden paketlenmiş veritabanı kullanarak veritabanı oluşturmak için kullanılan API'ler artık mevcut. Bu, önceden paket veritabanının gzip ile sıkıştırılması gibi durumlara izin verir.
  • Sağlanan Tür Dönüştürücüler: Odada, uygulamanın başlatma işlemlerini kontrol edebilmesi için tür dönüştürücü örnekleri sağlamak üzere API'ler artık mevcuttur. Room'a 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öntemleri beyan edebilirsiniz. Ayrıca, RxJava3'ü desteklemek için yeni bir androidx.room:room-rxjava3 yapısı kullanıma sunuldu.
  • Sayfa 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ı. 2.3.0-rc01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Oda tarafından oluşturulan Coroutine Flow sorgularının, askıya alınan withTransaction blokunda kullanılmasını engelleyen sorunu düzeltin. (I797bf)

Sürüm 2.3.0-beta03

10 Mart 2021

androidx.room:room-*:2.3.0-beta03 yayınlandı. 2.3.0-beta03 sürümü bu kayıtları 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üğünün paket özel yerine herkese açık olması düzeltildi. (b/181356119)

Harici Katkı

  • Odanın, @SkipQueryVerification ek açıklaması varsa @Query ek açıklamalı DAO yönteminde POJO dönüş türünü kabul etmesine izin verin. Oda, @RawQuery ek açıklamalı DAO yöntemiyle aynı şekilde, sorgunun sonucunu POJO dönüş türüne dönüştürmek için elimizden geleni yapar. "Markus Riegel | hey@marcorei.com"a teşekkür ederiz. (I45acb)

Sürüm 2.3.0-beta02

18 Şubat 2021

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

Yeni Özellikler

  • Oda artık Kotlin Sembol İşleme KSP için deneysel desteğe sahip.

    KSP, ek açıklama işlemcilerini Kotlin derleyicisinde yerel olarak çalıştırmak için KAPT'nin yerine geçer ve derleme sürelerini önemli ölçüde azaltı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 belgelerini inceleyin.

    KSP deneysel olduğundan, üretim kodu için yine de KAPT kullanmanızın önerildiğini unutmayın. Derleme sürelerinin kısaltma özelliği yalnızca KAPT kullanan başka işlemci yoksa geçerli olur. Bilinen sorunlar için b/160322705 adresini inceleyin.

Sürüm 2.3.0-beta01

27 Ocak 2021

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

Yeni Özellikler

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

Hata Düzeltmeleri

  • Farklı çakışma stratejilerine sahip birden fazla @Update veya @Delete yöntemi kullanan Dao yöntemlerinin, tanımlanmış olanı etkin bir şekilde yoksayarak bu stratejilerden yalnızca biriyle kod oluşturması sorunu düzeltildi. (/I0b90d, b/176138543)

Sürüm 2.3.0-alpha04

16 Aralık 2020

androidx.room:room-*:2.3.0-alpha04 yayınlandı. Sürüm 2.3.0-alpha04 bu kayıtları içerir.

Yeni Özellikler

  • Room, artık sorguların yürütülmek üzere olduğu anlar için genel bir geri çağırma API'si (RoomDatabase.QueryCallback) sunuyor. Bu API, hata ayıklama derlemelerinde günlüğe kaydetmek için yararlı olabilir. Geri arama, RoomDatabase.Builder#setQueryCallback() aracılığıyla ayarlanabilir. (Iaa513, b/174478034, b/74877608)
  • Oda artık varsayılan olarak bir Enum'dan String'e ve tersi tür bir dönüştürücü sağlanmazsa varsayılan olarak kullanılacak. Bir enum için tür dönüştürücü zaten varsa Room, varsayılan dönüştürücü yerine bunu kullanmaya öncelik verir. (b/73132006)

Bilinen Sorun

  • Sıralama için okuma için tek yönlü tür bir dönüştürücü zaten varsa Room, istenmeyen bir şekilde yerleşik String-Enum dönüştürücüsünü yanlışlıkla kullanabilir. Bu bilinen bir sorundur ve iki yönlü bir dönüştürücü haline getirilerek düzeltilebilir. 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 Oda'nın oluşturulan sınıfı bulmasıyla ilgili sorun düzeltildi. "Serendipity | 892449346@qq.com" sorununu düzelttiğiniz için teşekkür ederiz (b/170141113)
  • Bir Kotlin @Dao, JVM'de genel öğeleri temel öğeler olan bir temel sınıfa sahip olduğunda Room'un yanlış kod oluşturmasına neden olan sorun düzeltildi. (b/160258066)

Harici Katkı

  • WAL modu etkinse ve API 16 veya daha büyükse oda artık varsayılan olarak beginTransactionNonExclusive kullanacak. Ali 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ı. Sürüm 2.3.0-alpha03 bu kaydetmeleri içerir.

Yeni Özellikler

  • Room artık tür dönüştürücü örnekleri sağlamak için API'lere sahip. Böylece uygulama, başlatma işlemlerini kontrol edebilir. Odaya 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"a teşekkürler. (Ie4fa5, b/121067210)

  • Oda artık giriş akışından okunan önceden paketlenmiş bir veritabanı kullanarak veritabanı oluşturmak için API'lere sahip. Bu, önceden paket veritabanının gzip ile sıkıştırılması gibi durumlara izin verir. "Ahmed El-Helw ahmedre@gmail.com"a teşekkür ederiz (3e6792, b/146911060)

API Değişiklikleri

  • @ForeignKey ek açıklamasına eksik hedef eklendiğinde, ek açıklamanın @Entity ek açıklaması dışında kullanılmasını engelliyor. (Iced1e)

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

Hata Düzeltmeleri

  • TypeTransformers'ın yalnızca sütunları/alanları dönüştürmek için kullanılabileceğini, satırları/alanları dönüştürmek için kullanılamayacağını belirtmek amacıyla TypeConverters dokümanlarında güncelleme yapın. (I07c56, b/77307836)

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

  • İş parçacıklarını netleştirmek için gözlemci yöntemleriyle ilgili dokümanları ekleme/kaldırma (Ifd1d9, b/153948821)

  • Satır kimliği sütununu tanımlayan FTS tablolarının hatalı şekilde doğrulanması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 olmaması için RoomDatabase içindeki ConcurrentHashMap öğesini Collections.synchronizedMap() ile değiştirin

  • Önceden paketlenmiş bir veritabanının kopyalanması için bir 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ı. Sürüm 2.3.0-alpha02 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öntemleri beyan edebilirsiniz. Ayrıca, RxJava3'ü desteklemek için yeni bir androidx.room:room-rxjava3 yapısı kullanıma sunuldu. (b/152427884)

API Değişiklikleri

  • Kotlin Nesnesi 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 kayıtları içerir.

Yeni Özellikler

  • Sayfa 3.0 Desteği: Oda artık döndürme 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 yeniden yazmasını sağlayan ve sonuçtaki kullanılmayan sütunların kaldırılmasına neden olan yeni ve kullanışlı bir ek açıklamadır.
  • room.expandProjection adlı işlemci seçeneği kullanımdan kaldırıldı. Yıldız projeksiyonlarıyla Oda optimizasyonu sorgularının yerine @RewriteQueriesToDropUnusedColumns kullanın. @RewriteQueriesToDropUnusedColumns işlevinin, @Embedded alanı içeren döndürme türleri söz konusu olduğunda room.expandProjection sütun çakışma çözümünün yerine geçmediğini unutmayın.

Hata Düzeltmeleri

  • Room'un artımlı ek açıklama işlemcisini etkinleştirmek için kullanılan JDK sürümünü doğru şekilde algılamamasına neden olan hata düzeltildi. Blaz Solar (me@blaz.solar) sayesinde (b/155215201)
  • Room, artık ANTLR kullanan diğer işlemcilerle sürüm çakışmalarını önlemek için ek açıklama işlemcisine ANTLR bağımlılığını 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ı. Sürüm 2.2.6 bu kayıtları 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 kayıtları içerir.

Hata Düzeltmeleri

  • MultiInstanceInvalidationService DirectBootAware oluşturun. "Mygod contact-git@mygod.be" kullanıcısına teşekkür ederiz (b/148240967)
  • Çok örnekli geçersiz kılma 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 derleyicinin paralel derlemeler nedeniyle kilitlenmesine neden olan 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 kayıtları içerir.

Hata Düzeltmeleri

  • İşlem gerçekten başlamadan önce eş yordamın hemen iptal edilmesi halinde işlemlerin kilitlenmesine neden olan işlemlerin askıya alınmasıyla ilgili sorun giderildi. (b/148181325)
  • JDK 9 ile derleme yaparken @Generated'nin yanlış kullanılmasıyla ilgili sorun giderildi. (b/146538330)
  • Kotlin'deki bir DAO arayüzünün somut bir işlevi olduğunda Room'un 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 kayıtları içerir.

Hata düzeltmeleri

  • Room'un hiçbir taşıma işleminden geçmemiş ve şemasında dizin içeren eski bir karma içeren bir veritabanını doğrulayamaması şeklinde ortaya çıkan hata 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 kayıtları içerir.

Hata düzeltmeleri

  • 999'dan fazla satırla bire-bir ilişki toplamanın, Room'un ilişkili null öğeler döndürmesine neden olduğu 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 kayıtları içerir.

Hata düzeltmeleri

  • Odanın, derleyici seçeneği expandProjection AÇIK olduğunda CURSOR_MISMATCH hakkında yanlış bir şekilde uyarıda bulunmasına neden olan hata düzeltildi. (b/140759491)
  • Derleme süresinde sorguları doğrulamak amacıyla kullanılan eksik yerel kitaplığın işlenmesi için 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ı. Sürüm 2.2.0 bu kayıtları içerir.

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

  • Önceden Paketlenmiş Veritabanı: Önceden doldurulmuş bir veritabanı dosyası verildiğinde, RoomDatabase.Builder uygulamasında iki yeni API artık RoomDatabase oluşturabilir. createFromAsset(), önceden doldurulmuş veritabanı dosyasının APK'nın öğe klasöründe olduğu durumlar içindir. createFromFile() ise dosyanın rastgele bir konumda olduğu durumlar içindir. Bu API'lerin kullanımı, yedek taşıma sırasında Oda'nın önceden doldurulmuş veritabanını (varsa) yeniden kopyalamaya çalışması gibi yıkıcı taşıma işlemlerinin davranışını değiştirir. Aksi takdirde, tüm tabloları kaldırıp yeniden oluşturmaya başlar. 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 parçasıdır ve belirtilirse taşımalar sırasında doğrulanır. b/64088772
  • Çoktan Çok İlişkiler: @Relation, artık yeni bir @Junction ek açıklamasını alan yeni associateBy özelliğine sahip. Bu ek açıklama, bir bağlantı tablosu (birleştirme tablosu olarak da bilinir) aracılığıyla tamamlanması gereken bir ilişkiyi tanımlamak için kullanılır. b/69201917
  • Bire Bir İlişkiler: @Relation notuna sahip POJO alanlarında List veya Set türünde olma kısıtlaması kaldırıldı. Böylece tek değerli ilişkilerin temsil edilmesi için etkili bir yöntem sağlandı. b/62905145
  • Hedef Varlık: @Insert, @Update ve @Delete DAO ek açıklamalarının artık DAO yönteminin üzerinde işlem yapacağı hedef tablonun belirtilmesini sağlayan yeni bir targetEntity özelliği var. 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 izin verir. b/127549506
  • Coroutines Flow: @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 grubunu yeniden yayar. Channel<T> dönüş türüne sahip bir DAO işlevi tanımlamak hatadır. Room bunun yerine Flow kullanmanızı ve ardından Flow öğesini Channel öğesine dönüştürmek için komşu işlevleri kullanmanızı önerir. b/130428884
  • Gradle Artımlı Ek Açıklama İşlemcisi: Oda artık bir Gradle izolasyon ek açıklama işlemcisi haline gelmiştir ve işlemci seçeneği room.incremental ile artırılabilirlik etkinleştirilebilir. Daha fazla bilgi için Oda Derleyici Seçenekleri bölümüne bakın. Herhangi bir sorunla karşılaşırsanız lütfen buradan bir hata bildiriminde bulunun. Gelecekte, kararlı bir sürümde artırılabilirliği varsayılan olarak etkinleştirmeyi planlıyoruz. b/112110217
  • Genişleyen Projeksiyonlar: Room'un bir sorguyu yıldız projeksiyonuyla yeniden yazarak yalnızca POJO dönen türündeki sütunları içermesini sağlayan yeni bir deneysel derleyici seçeneği room.expandProjection eklendi. Örneğin, yalnızca iki alanlı SongIdAndTitle adlı bir POJO döndüren, @Query("SELECT * FROM Song") içeren bir DAO yöntemi için. Daha sonra Room, sorguyu SELECT id, title FROM Song öğesine yeniden yazar. Böylece, döndürülen türü karşılayacak minimum sütun grubu getirilir. Bu, 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ı temel olarak 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 kaydetmeleri burada bulabilirsiniz.

2.2.0-beta01 numaralı odadan bu yana herkese açık değişiklik yapılmadı.

Sürüm 2.2.0-beta01

22 Ağustos 2019

androidx.room:room-*:2.2.0-beta01 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Hata düzeltmeleri

  • Coroutine Flow sorgusunun belirli bir süre sonra yeni değerler yayınlamayı durdurmasına neden olan hata düzeltildi. (b/139175786)
  • Room 1.0'dan bu yana taşıma işlemine geçmemiş bir veritabanı açılırken, geçersiz şema nedeniyle çalışma zamanı kilitlenmesine neden olan bir veritabanı açılırken Room'un eski bir şema karma kodunu kabul etmemesine 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 kaydetmeleri burada bulabilirsiniz.

Yeni Özellikler

  • Coroutines Flow: @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 grubunu yeniden yayar. Channel<T> dönüş türüne sahip bir DAO işlevi tanımlamak hatadır. Room bunun yerine Flow kullanmanızı ve ardından Flow öğesini Channel öğesine dönüştürmek için komşu işlevleri kullanmanızı önerir. b/130428884
  • Genişleyen Projeksiyonlar: Room'un bir sorguyu yıldız projeksiyonuyla yeniden yazarak yalnızca POJO dönen türündeki sütunları içermesini sağlayan yeni bir deneysel derleyici seçeneği room.expandProjection eklendi. Örneğin, yalnızca iki alanlı SongIdAndTitle adlı bir POJO döndüren, @Query("SELECT * FROM Song") içeren bir DAO yöntemi için. Daha sonra Room, sorguyu SELECT id, title FROM Song öğesine yeniden yazar. Böylece, döndürülen türü karşılayacak minimum sütun grubu getirilir. Bu, 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ı temel olarak ortadan kaldırır.
  • onDestructiveMigrate, Room bir veritabanını yıkıcı bir şekilde taşırken RoomDatabase.Callback öğesine eklenen yeni bir geri çağırma API'sidir. b/79962330

Hata Düzeltmeleri

  • Odanın, alan korunurken alan ayarlayıcı olarak bir yöntem kullanarak yanlış kod oluşturmasına neden olan hata düzeltildi. b/136194628
  • Birden fazla örnek geçersiz kılma etkinleştirildiğinde ve geçersiz kılma Hizmeti sonlandırıldığında, InvalidationTracker'ın ikinci bir süreçte NPE'yi tetiklemesine neden olan bir hata düzeltildi. b/137454915
  • Odanın, @RawQuery ek açıklamasına sahip devralınan askıya alma işlevinin döndürülen türünü doğru şekilde tanımlamamasına yol açan hata düzeltildi. b/137878827
  • İlgili anahtar BLOB türünde olduğunda @Relation için oluşturulan kod, benzer bir ByteBuffer kullanacak şekilde güncellendi. b/137881998
  • Odanın @Insert, @Update ve @Delete öğelerinin kısmi varlık parametreleri olarak kullanılan POJO'larda eksik ayarlayıcılarla ilgili şikayet etmesine neden olan 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 belirleyiciler hakkında şikayette bulunmasına neden olan hata düzeltildi. b/138238182
  • Odanın adlandırılmış bağlama bağımsız değişkenlerini konumsal bağımsız değişkenlere doğru şekilde dönüştürememesine neden olan hata düzeltildi. Bu hata, yeniden kullanılan parametrelerle sorgu yürütüldüğünde çalışma zamanı istisnasına yol açar. b/137254857

Sürüm 2.2.0-alpha01

10 Temmuz 2019

Yeni Özellikler

  • Önceden Paketlenmiş Veritabanı: Önceden doldurulmuş bir veritabanı dosyası verildiğinde, RoomDatabase.Builder uygulamasında iki yeni API artık RoomDatabase oluşturabilir. createFromAsset(), önceden doldurulmuş veritabanı dosyasının APK'nın öğe klasöründe olduğu durumlar içindir. createFromFile() ise dosyanın rastgele bir konumda olduğu durumlar içindir. Bu API'lerin kullanımı, yedek taşıma sırasında Oda'nın önceden doldurulmuş veritabanını (varsa) yeniden kopyalamaya çalışması gibi yıkıcı taşıma işlemlerinin davranışını değiştirir. Aksi takdirde, tüm tabloları kaldırıp yeniden oluşturmaya başlar. 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 parçasıdır ve belirtilirse taşımalar sırasında doğrulanır. b/64088772

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

  • Çoktan Çok İlişkiler: @Relation, artık yeni bir @Junction ek açıklamasını alan yeni associateBy özelliğine sahip. Bu ek açıklama, bir bağlantı tablosu (birleştirme tablosu olarak da bilinir) aracılığıyla tamamlanması gereken bir ilişkiyi tanımlamak için kullanılır. b/69201917
  • Bire Bir İlişkiler: @Relation notuna sahip POJO alanlarında List veya Set türünde olma kısıtlaması kaldırıldı. Böylece tek değerli ilişkilerin temsil edilmesi için etkili bir yöntem sağlandı. b/62905145
  • Hedef Varlık: @Insert, @Update ve @Delete DAO ek açıklamalarının artık DAO yönteminin üzerinde işlem yapacağı hedef tablonun belirtilmesini sağlayan yeni bir targetEntity özelliği var. 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 izin verir. b/127549506
  • Gradle Artımlı Ek Açıklama İşlemcisi: Oda artık bir Gradle izolasyon ek açıklama işlemcisi haline gelmiştir ve işlemci seçeneği room.incremental ile artırılabilirlik etkinleştirilebilir. Daha fazla bilgi için Oda Derleyici Seçenekleri bölümüne bakın. Herhangi bir sorunla karşılaşırsanız lütfen buradan bir hata bildiriminde bulunun. Gelecekte, kararlı bir sürümde artırılabilirliği varsayılan olarak etkinleştirmeyi planlıyoruz. b/112110217

Hata Düzeltmeleri

  • Oda, sorgu tamamlanmadan önce sorgunun Rx akışı silindiğinde EmptySetResultException öğesini artık genel hata işleyiciye yaymaz. b/130257475
  • @RawQuery ile not eklenmiş bir askıya alma işlevinin döndürme türü olmadığında Room'un 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

Oda 2.1.0, 2.1.0-rc01 tarihinden itibaren herhangi bir değişiklik olmadan iptal edildi. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

2.0.0 sürümünden sonraki önemli değişiklikler

  • FTS: Oda artık FTS3 veya FTS4 eşleme tablosuna sahip varlıkları destekliyor. @Entity ile açıklama eklenmiş sınıflara artık 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çeneklerine ek açıklamanın yöntemleri aracılığıyla erişebilirsiniz.
  • 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 kayıtlı sorgu olarak beyan edilmesini destekliyor.
  • Koutinler: 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şlemleri 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 beyan edilmesini destekliyor. Oda ek açıklamaları @PrimaryKey, @ColumnInfo, @Embedded ve @Relation artık otomatik değer ek açıklamalı sınıfın soyut yöntemlerinde bildirilebilir. Odanın bunları doğru bir şekilde anlayabilmesi için bu ek açıklamalara @CopyAnnotations eşlik etmesi de gerektiğini unutmayın.
  • Ek Eş Zamansız Destek: @Insert, @Delete veya @Update ifadeleri içeren @Query ve INSERT, DELETE veya UPDATE ifadelerini içeren @Query ek açıklamalarına sahip DAO yöntemleri artık Completable, Single, Maybe Rx dönüş türlerini ve Guava'nın ListenableFuture dönüş türünü destekliyor. Ayrıca askıya alma işlevleri de olabilirler.
  • enableMultiInstanceInvalidation, aynı veritabanı dosyasını kullanarak birden fazla RoomDatabase örneğinde geçersiz kılmayı etkinleştirmek için RoomDatabase.Builder içinde kullanıma sunulan yeni bir API'dir.
  • fallbackToDestructiveMigrationOnDowngrade, eski sürüme geçiş yapılması durumunda veritabanını otomatik olarak yeniden oluşturmak için kullanılan yeni bir RoomDatabase.Builder API'dir.
  • ignoredColumns, @Entity ek açıklaması içinde yer alan ve yoksayılan alanları ada göre listelemek için kullanılabilecek yeni bir API'dir.
  • Room artık veri sınıflarında Kotlin'in birincil oluşturucusunu düzgün bir şekilde kullanacak ve özelliklerin vars olarak belirtilmesine gerek kalmayacak.

Sürüm 2.1.0-rc01

29 Mayıs 2019

Hata Düzeltmeleri

  • Önceden ayarlanmış 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ümleri çalıştıran kullanıcılar için çift tırnak işareti kullanım uyarısı düzeltildi. b/131712640
  • Buna paralel olarak birden fazla geçersiz kılma kontrolü yapıldığında InvalidationTracker'ın kilitlenmeye neden olmasına neden olan 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 hiçbir değişiklik olmadan yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Sürüm 2.1.0-alpha07

25 Nisan 2019

API / Davranış Değişiklikleri

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

Hata Düzeltmeleri

  • Koleksiyon türü parametresi içeren bir Kotlin DAO işlevi için Room'un TypeConverter ile eşleşmemesine 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 serileştirilerek Oda, veritabanı işlemlerini yürütmek için birden fazla iş parçacığı kullanmayacaktır. Yürütücünün işlemlerde kullanılması amacıyla yapılandırılmasını sağlamak için RoomDatabase.Builder.setTransactionExecutor(Executor) eklendi.
  • RoomDatabase.runInTransaction(Callable), işaretli istisnaları artık RuntimeExceptions etiketine eklemez. 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 içerik tablosunu gözlemlemeyi bırakması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, bir eş yordam içinde veritabanı işlemlerini 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 ek açıklama 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ı şekilde adlandırılarak room-ktx olarak yeniden adlandırıldı.
  • RoomDatabase için beginTransaction, setTransactionSuccessful ve endTransaction desteği sonlandırılmış olup yerini runInTransaction ve room-ktx uzantı işlevi olan withTransaction aldı.

Hata Düzeltmeleri

  • Kullanılan belirteç oluşturucu BASİT olduğunda belirteç bağımsız değişkenlerinin kaybolmasına neden olan hata düzeltildi. b/125427014
  • Odanın, türü iç sınıf olan parametrelerle askıya alma işlevlerini doğru şekilde tanımlamamasına neden olan hata düzeltildi. b/123767877
  • INSERT, UPDATE veya DELETE ifadeleri içeren ertelenmiş @Query DAO yönteminin ana iş parçacığında sorguyu 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
  • Kullanımdan kaldırılan yöntem kullanımının oluşturulan kodda doğru şekilde engellenmemesine neden olan hata düzeltildi. b/117602586
  • androidx.sqlite'ın Room bağımlılığı, bozuk veritabanlarının doğru şekilde işlenmesine yönelik düzeltmeler içeren 1.0.2 olarak güncellendi. b/124476912

Bilinen Sorunlar

  • Oda 2.1.0-alpha05 şu anda Maven Central'da (KT-27991) kullanılamayan 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/" } eklenerek çö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ına sahip DAO yöntemleri artık eşzamansız Single, Mayble, Completable ve ListenableFuture türlerini döndürebilir. Askıya alma işlevleri de olabilir. b/120227284

API / Davranış Değişiklikleri

  • @Transaction ek açıklamasına sahip, 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 hata bildirecek. İşlemler iş parçacığıyla sınırlı olduğundan, Oda'nın farklı iş parçacıklarında sorgularla sonuçlanabilecek bir işlev etrafında işlem başlatması ve sonlandırması şu anda mümkün değildir. b/120109336
  • OnConflictStrategy.FAIL ve OnConflictStrategy.ROLLBACK, Android'in mevcut SQLite bağlamalarıyla beklendiği gibi çalışmadıkları için @Deprecated oldu. b/117266738

Hata Düzeltmeleri

  • DAO yöntemi bir askıya alma işleviyse Room'un dönüş türündeki TypeConverter'ı doğru şekilde kullanmamasına neden olan hata düzeltildi. b/122988159
  • Odanın devralınan askıya alma işlevlerinin, askıya alma işlevi olmayan şekilde yanlış tanımlanmasına neden olan hata düzeltildi. b/122902595
  • @Embedded alanı bir üst sınıftayken 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 Sıralama yerine Dize alıyor. Bu, özel belirteçleştiricilerin Oda tarafından kullanılmasına olanak tanır. Yerleşik belirteçler FtsOptions öğesinde dize sabitleri olarak tanımlanmaya devam eder. b/119234881

Yeni Özellikler

  • Koutinler: 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 ek açıklamasına sahip DAO yöntemleri artık döndürme türü olarak ListenableFuture değerini destekliyor. b/119418331

Hata Düzeltmeleri

  • Odanın, @Entity özelliğinin ignoredColumns özelliğindeki sütunları içeren bir oluşturucuyu yanlışlıkla bulmaya çalışmasına neden olan hata düzeltildi. b/119830714
  • Odanın, oluşturulan uygulamada DAO yöntem parametrelerini nihai olarak işaretlememesine neden olan hata düzeltildi. b/118015483
  • Özel simgeler içeren bir sorguyla ilgili hata bildirilirken 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özlemlendikten sonra çöp toplamasına neden olan ve artık yeni veri yayınlamamasına yol açan hata düzeltildi. b/74477406
  • Kilit anlaşmazlığını azaltmak için RoomDatabase uygulamasının kapatma kilidi güncellendi. b/117900450

Sürüm 2.1.0-alpha02

30 Ekim 2018

Yeni Özellikler

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

Hata Düzeltmeleri

  • Bir Rx döndürme türünden abone olma ve bu tür gönderme işlemleri sırasında Odanın ana iş parçacığında disk G/Ç'si gerçekleştirmesine neden olan hata düzeltildi. b/117201279
  • Odanın, Kotlin varlık sınıfındaki bir alan için uygun tür dönüştürücü bulamamasına neden olan hata düzeltildi. b/111404868
  • Odanın, bağımsız değişkeni olmayan varsayılan Kotlin yöntemini içeren 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 olan 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 öğeleri destekliyor. @Entity ile not verilmiş sınıflara artık tam metin eşleme tablosu olan bir sınıf bildirmek için @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şebilirsiniz. b/62356416
  • Görünümler: Oda artık bir sınıfın @DatabaseView ek açıklaması kullanılarak görünüm olarak da bilinen kayıtlı sorgu olarak beyan edilmesini destekliyor. b/67033276
  • Otomatik Değer: Oda artık AutoValue ek açıklamalı sınıfların varlık ve POJO olarak beyan edilmesini destekliyor. @PrimaryKey, @ColumnInfo, @Embedded ve @Relation oda ek açıklamaları artık otomatik değer ek açıklamalı sınıfın soyut yöntemlerinde bildirilebilir. Odanın ek açıklamaları düzgün şekilde anlayabilmesi için bu ek açıklamalara @CopyAnnotations eşlik etmesi gerektiğini unutmayın. b/62408420
  • Ek Rx İade Türleri Desteği: @Insert, @Delete veya @Update ek açıklamasına sahip DAO yöntemleri artık Completable, Single<T> ve Maybe<T> Rx döndürme türlerini desteklemektedir. b/63317956
  • @Relation ile Sabit Türler: Oda, daha önce @Relation ek açıklamalı alanın ayarlanabilir olmasını gerektiriyordu, ancak artık bunlar kurucu parametreler olabilir.
  • enableMultiInstanceInvalidation: RoomDatabase.Builder içinde, aynı veritabanı dosyasını kullanarak birden fazla RoomDatabase örneğinde geçersiz kılmayı etkinleştiren yeni bir API'dir. Bu çok örnekli geçersiz kılma mekanizması, birden çok işlemde de çalışır. b/62334005
  • fallbackToDestructiveMigrationOnDowngrade: Eski sürüme geçilmesi durumunda veritabanını otomatik olarak yeniden oluşturan, RoomDatabase.Builder içinde yeni bir API'dir. b/110416954
  • ignoredColumns: @Entity ek açıklaması içinde, yoksayılan alanları ada göre listelemek için kullanılabilen yeni bir API'dir. Bir varlıkta devralınan alanların yoksayılması için kullanışlıdır. b/63522075

API / Davranış Değişiklikleri

  • RoomDatabase içindeki mCallback ve mDatabase artık @Deprecated ve Oda'nın bir sonraki ana sürümünde kaldırılacak. b/76109329

Hata Düzeltmeleri

  • Oda'nın başlatma sırasında bozuk bir veritabanından düzgün şekilde kurtarılamamasına veya hatalı bir taşıma işleminin gerçekleştirilmesine neden olan iki sorun düzeltildi. b/111504749 ve b/111519144
  • Oda artık veri sınıflarında Kotlin’in birincil oluşturucusunu düzgün bir şekilde kullanacak ve alanların vars olarak belirtilmesine gerek kalmayacak. 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 sürümünden herhangi bir değişiklik olmadan 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ünden herhangi bir değişiklik olmadan yayınlandı.

Sürüm 2.0.0-beta01

2 Temmuz 2018

API / Davranış Değişiklikleri

  • Sorguların çalıştırılacağı yerlerin ö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ı bulunamadı" hatasında sınıf/alan adını belirtin b/73334503
  • b/110197391 numaralı Odanın eski sürümleriyle RoomOpenHelper geriye dönük uyumluluk sorunu 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şlemlerini 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 işlememesine 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

  • Bir Kotlin POJO, Java b/78199923'te tanımlanan 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, sorguyu önceden geri dönüştürmesine neden olan ve döndürülen Single veya Maybe verilerine 1'den fazla gözlemci eklerseniz sorunlara neden olan kritik bir hata düzeltildi. b/76031240

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

Sürüm 1.1.0-beta1

21 Mart 2018

API Değişiklikleri

  • API İncelemesi geri bildirimine göre @RawQuery, artık sorgu parametresi olarak String değerinin iletilmesini 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 [BasitSQLiteQuery][ref-BasitSQLiteQuery] bölümüne bakın).
  • RoomDatabase.Builder'ın [fallbackToDestructiveMigrationFrom][ref-fallbackToDestructiveMigrationFrom] yöntemi artık vararg Integer yerine vararg int yöntemini kabul etmektedir.

Hata Düzeltmeleri

  • [RoomDatabase.clearAllTables][ref-clearAllTables] şimdi bir WAL kontrol noktası ayarlayıp veritabanını VACUUM ayarlayarak işletim sistemine alan geri döndürmeye çalışıyor.
  • [@RawQuery][ref-RawQuery] artık observedEntities mülkü için herhangi bir Pojo'yu kabul ediyor. Bunun için Pojo, Embedded alanları veya Relation'leri aracılığıyla bir veya daha fazla varlığa referans veriyor. b/74041772
  • Sayfalama: Odanın DataSource uygulaması artık çoklu tablo bağımlılıklarını (ilişkiler ve birleştirmeler gibi) doğru şekilde işliyor. Daha önce bunlar yeni sonuçları tetikleyemiyor veya derlenemiyordu. b/74128314

Sürüm 1.1.0-alpha1

22 Ocak 2018

Yeni Özellikler

  • RawQuery: Bu yeni API, @Dao yöntemlerinin SQL'i bir sorgu parametresi olarak almasını sağlar b/62103290, b/71458963
  • fallBackToDestructiveMigrationsFrom: RoomDatabase.Builder hizmetindeki bu yeni API, hangi başlangıç şeması sürümlerinde 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
  • Room artık yalnızca daha yeni Paging API'lerini (alfa-4+) destekliyor ve kullanımdan kaldırılan LivePagedListProvider için desteği bırakıyor. Yeni Oda alfa sürümünü kullanmak için alpha-4 veya daha yüksek bir sayfa numarası 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