Room
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.
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ı dosyaSQLite
veBundledSQLiteKt
adlı dosyaBundledSQLite
olarak yeniden adlandırıldı. (I8b501)
Hata Düzeltmeleri
AndroidSQLiteDriver
kullanılırkenRoomDatabase
öğ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 birRoom.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
. BirRoomDatabase
öğ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
veRoomDatabase.useWriterConnection
. - Çeşitli Oda ile alakalı geri çağırmalarda artık
SupportSQLiteDatabase
yerineSQLiteConnection
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 birlikteandroidx.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çerenLoadStateUpdate
öğesininLoadResult.Error
öğesi olarak yayılacak. Bu hata durumuPagingDataAdapter.loadStateFlow(Views)
veyaLazyPagingItems.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ındaSQLite
ö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ızcacolumnName
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çinwithTransaction()
, 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 dizisindekirunBlocking
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ündeMutableSet
yerineSet
türünde bir parametreye sahip olmak için artıkObserver
içindeonInvalidate()
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
veroom-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 birSQLiteConstraintException
atar. (I328dd) getOpenHelper
,getQueryExecutor
vegetTransactionExecutor
öğ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
- Odalarda Destek için
room-paging-rxjava2
,room-paging-rxjava3
veroom-paging-guava
yeniroom-paging
yapıları eklendi.(41a1d4,b/203666906),(eb6098,b/203666906),(1b9ae4,b/203
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ündeMutableSet
yerineSet
türünde bir parametreye sahip olmak için artıkObserver
içindeonInvalidate()
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 ilgilipaging
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ındaRoomDatabase.Builder#addAutoMigrationSpec()
aracılığıyla birAutoMigrationSpec
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ınrunMigrationsAndValidate
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 veandroidx.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ınImmutableMap
,ImmutableSetMultimap
veImmutableListMultimap
.
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 iletilenqueryExecutor
yöntemini kullanır. Böylece öncedenDispatchers.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
- UUID için yerleşik bir tür dönüştürücü eklendi. (I671e8, b/73132006)
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ınImmutableMap
,ImmutableSetMultimap
veImmutableListMultimap
.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'inObservable
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ğlayanandroidx.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. SayfalarKey
üzerinden yüklenmeye başlayacak veKey
, 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ınrunMigrationsAndValidate
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ındaRoomDatabase.Builder#addAutoMigrationSpec()
aracılığıylaAutoMigrationSpec
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ğindeInvalidationTracker
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
- KSP için artımlı derleme desteği eklendi. (I031c1, b/176453350)
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'
yerineksp '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ğiRoomDatabase.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çindekimCallbacks
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çindekiConcurrentHashMap
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ünroom.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ği
expandProjection
etkinkenCURSOR_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ıkRoomDatabase.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 birdefaultValue
ö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 birassociateBy
ö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 birlikteList
veyaSet
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 birtargetEntity
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ıkFlow<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 yerineFlow
öğesini kullanmanızı ve ardındanFlow
öğesini birChannel
öğ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çerenSongIdAndTitle
adlı bir POJO döndüren@Query("SELECT * FROM Song")
içeren bir DAO yöntemi için. Ardından Room, sorguyuSELECT 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österilenCURSOR_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ıkFlow<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 yerineFlow
öğesini kullanmanızı ve ardındanFlow
öğesini birChannel
öğ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çerenSongIdAndTitle
adlı bir POJO döndüren@Query("SELECT * FROM Song")
içeren bir DAO yöntemi için. Ardından Room, sorguyuSELECT 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österilenCURSOR_MISMATCH
uyarısını ortadan kaldırır. onDestructiveMigrate
, Odanın bir veritabanını yıkıcı bir şekilde taşıması içinRoomDatabase.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 birByteBuffer
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ıkRoomDatabase.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 birdefaultValue
ö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/64088772Not: 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 birassociateBy
ö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 birlikteList
veyaSet
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 birtargetEntity
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çinRoomDatabase.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ıraINSERT
,DELETE
veyaUPDATE
ifadeleri içeren@Query
, artıkCompletable
,Single
,Maybe
Rx dönüş türlerini ve Guava'nınListenableFuture
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çinRoomDatabase.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ı olarakCoroutineScope
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 ekcoroutineScope { }
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 şekilderoom-ktx
olarak yeniden adlandırıldı.RoomDatabase
bölgesindekibeginTransaction
,setTransactionSuccessful
veendTransaction
desteği sonlandırılarakrunInTransaction
veroom-ktx
uzantı işleviwithTransaction
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
veyaDELETE
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ızamaven { url "https://kotlin.bintray.com/kotlinx/" }
ekleyerek çözülebilir.
Sürüm 2.1.0-alpha04
25 Ocak 2019
Yeni Özellikler
INSERT
,UPDATE
veyaDELETE
ifadeleri içeren@Query
ek açıklamasıyla birlikte DAO yöntemleri artıkSingle
,Mayble
,Completable
veListenableFuture
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öntemiSingle
,Mayble
,Completable
,LiveData
veyaListenableFuture
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/120109336OnConflictStrategy.FAIL
veOnConflictStrategy.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/121099048beginTransaction()
ileendTransaction()
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 FTStokenizer
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ü olarakListenableFuture
destekleniyor. b/119418331
Hata Düzeltmeleri
- Odanın yanlışlıkla
@Entity
öğesininignoredColumns
ö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şitliCollection
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ıkCompletable
,Single<T>
veMaybe<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/62334005fallbackToDestructiveMigrationOnDowngrade
:RoomDatabase.Builder
ürününde, eski sürüme geçilmesi durumunda veritabanını otomatik olarak yeniden oluşturan yeni bir API'dir. b/110416954ignoredColumns
:@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ındakimCallback
vemDatabase
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
veMaybe
uygulamalarında, sorgunun önceden geri dönüştürülmesine neden olan kritik bir hata düzeltildi. Bu hata, döndürülenSingle
veyaMaybe
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 olarakString
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
yerinevararg 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'nunEmbedded
alanları veyaRelation
'leri aracılığıyla bir veya daha fazla varlığa referans verdiği sürece artıkobservedEntities
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ğlarfallBackToDestructiveMigrationsFrom
: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 sayfalamaalpha-4
veya daha yüksek bir sayfa kullanmanız ve henüz yapmadıysanızLivePagedListProvider
değerindenLivePagedListBuilder
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