Room
Son Güncelleme | Kararlı Sürüm | Serbest Bırakma Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
1 Mayıs 2024 | 2.6.1 | - | - | 2.7.0-alpha01 |
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ın veya modülünüz için build.gradle
dosyasına ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:
Modern
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ıç dokümanlarına 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 edinmek 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ülleri) 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 var.
room.schemaLocation |
directory
Veritabanı şemalarının belirtilen dizindeki JSON dosyalarına aktarılmasını etkinleştirir. 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 gerektirir. 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 sürüm 2.6.0 ve sonraki sürümlerde, Oda derleyicisi seçeneklerini yapılandırmak için Room Gradle Eklentisi'ni kullanabilirsiniz. Eklenti, projeyi, yeniden oluşturulabilir ve önbelleğe alınabilir derlemelere sahip olacak şekilde doğru şekilde yapılandırılan şemalar (derleme görevlerinin çıktısı olan ve otomatik taşımalar için tüketilen) oluşturacak ş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.
Modern
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.
Modern
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
ayarlanması gerekir. Bu işlem, Oda derleyicisini ve çeşitli derleme görevlerini ve arka uçlarını (javac, KAPT, KSP) yapılandırarak şema dosyalarını farklı klasörlerde (örneğin, schemas/flavorOneDebug/com.package.MyDatabase/1.json
) farklı klasörlerde oluşturur. Bu dosyalar, doğrulama ve otomatik taşıma işlemlerinde kullanılacak kod deposuna kaydedilmelidir.
Bazı seçenekler, Oda derleyicisi tarafından desteklenseler bile Room Gradle Eklentisinin tüm sürümlerinde yapılandırılamaz. Aşağıdaki tabloda her bir seçenek listelenmekte ve room
uzantısını kullanarak bu seçeneği yapılandırma desteği sunan Room Gradle Eklentisi sürümü gösterilmektedir. Sürümünüz daha düşükse veya seçenek henüz desteklenmiyorsa bunun yerine ek açıklama işlemci seçeneklerini kullanabilirsiniz.
Seçenek | Sürümden beri |
---|---|
room.schemaLocation (zorunlu) |
2.6.0 |
room.incremental |
- |
room.generateKotlin |
- |
Ek açıklama işlemcisi seçeneklerini kullanma
Room Gradle Eklentisi'ni kullanmıyorsanız veya istediğiniz seçenek eklentinizin sürümü tarafından desteklenmiyorsa Room Gradle Eklentisi'ni Derleme bağımlılıkları ekleme bölümünde açıklandığı gibi ek açıklama işlemcisi seçeneklerini kullanarak yapılandırabilirsiniz. Ek açıklama seçeneklerini nasıl belirteceğiniz, Oda için KSP veya KAPT kullanıp kullanmamanıza bağlıdır.
Modern
// 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 tür değil, bir dizin olduğundan Gradle'ın güncel kontroller gerçekleştirirken bu dizinden haberdar olması için bu seçeneği eklerken bir CommandLineArgumentsProvider
kullanılması gerekir.
Migrate your Room veritabanı, şema konumunu sağlayan CommandLineArgumentsProvider
öğesinin eksiksiz bir uygulamasını gösterir.
Geri bildirim
Geri bildiriminiz Jetpack'i daha iyi hale getirmemize yardımcı oluyor. Yeni sorunlar keşfederseniz veya bu kitaplığı nasıl geliştirebileceğimizle ilgili fikirleriniz varsa bize bildirin. Yeni bir sorun 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.
Daha fazla bilgi için Sorun İzleyici belgelerine bakın.
Sürüm 2.7
Sürüm 2.7.0-alpha01
1 Mayıs 2024
androidx.room:room-*:2.7.0-alpha01
yayınlandı. 2.7.0-alpha01 sürümü bu kayıtları içerir.
Yeni Özellikler
- Kotlin Çoklu Platform (KMP) Desteği: Bu sürümde Room, Kotlin Multiplatform (KMP) kitaplığına dönüştürülecek şekilde yeniden düzenlendi. Hâlâ yapılacak işler olmakla birlikte, bu sürümde Room'un, işlevlerin çoğunun "ortak kullanıma sunulduğu" (çok platformlu hale getirildiği) yeni bir sürümü kullanıma sunuluyor. Şu anda desteklenen platformlar Android, iOS, JVM (Masaüstü), yerel Mac ve yerel Linux'tur. Yeni desteklenen platformlardaki eksik işlevler, yayınlanacak Oda sürümlerinde "özelliklerin tamamlanması" için sunulacaktır.
Oda KMP'sini kullanmaya başlama hakkında daha fazla bilgi için lütfen Oda KMP'sinin resmi dokümanlarına bakın.
- İşleme KSP üzerinden yapılıyorsa KSP'de Kotlin Kod Oluşturma varsayılan olarak AÇIK'tır. Yalnızca KAPT veya Java projeleri için Room, Java kaynakları oluşturmaya devam eder.
API Değişiklikleri
- Oluşturulan
RoomDatabase
uygulaması örneklenirken yansımaları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ükü eklendi. Örnek kullanım:
Room.databaseBuilder<MyDatabase>(
context = appContext,
name = dbFilePath,
factory = { MyDatabase::class.instantiateImpl() }
)
- Şu oluşturucuya
CoroutineContext
ile Oda yapılandırmak için bir API eklendi:RoomDatabase.Builder.setQueryCoroutineContext
.RoomDatabase
öğesinin yalnızcasetQueryExecutor
kullanan yürütücülerle veya eş yordam bağlamıyla yapılandırılabileceğini, ancak her ikisiyle yapılandırılamayacağını unutmayın. - Room'u
SQLite
Sürücüsü ile yapılandırmak için bir 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şim sağlayan API'ler eklendi:RoomDatabase.useReaderConnection
veRoomDatabase.useWriterConnection
. - Varios Odası ile ilgili geri çağırmaların artık
SupportSQLiteDatabase
yerineSQLiteConnection
alan aşırı yüklenmiş bir sürümü var. Bunların, KMP projesine taşıma sırasında geçersiz kılınması amaçlanmıştır. Bir Android uygulamasındaki Oda kullanımlarını ortak bir KMP modülüne taşıma hakkında daha fazla bilgi edinmek 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)
androidx.room:room-ktx
KTX yapısı tüm API'leriyle birlikteandroidx.room:room-runtime
ile birleştirildi ve yapı artık boş. Lütfen bunu 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 kayıtları içerir.
Hata Düzeltmeleri
- Oluşturulan kodda,
EntityCursorConverter
sütunundaki Çift sütunlarının varsayılan değerinin 0,0 yerine 0 olarak ayarlanmasına ilişkin sorun giderildi. Kayan reklam türündeki sütunlarda benzer bir kenar durumu için olası bir düzeltme de dahil edilmiştir. (Id75f5, b/304584179) PagingSource
yüklemelerden kaynaklanan istisnalar, artık Atılabilir öğeyi içerenLoadStateUpdate
/LoadResult.Error
olarak yayılacak. Bu hata durumu,PagingDataAdapter.loadStateFlow(Views)
veyaLazyPagingItems.loadState(Compose)
aracılığıyla gözlemlenebilir. Bunun, geçmişteki yükleme hatalarının, yüklemeyi tetikleyen dao yöntemi tarafından oluşturulan bir İstisna olarak kabaracağı bir davranış değişikliği olduğunu 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 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 Oda KSP'sinde kullanılabilir. (4297ec0). Odada Kotlin CodeGen'i etkinleştirmek için KSP işlemci seçeneklerinize
room.generateKotlin
seçenek adını ekleyin. KSP'nin işlemci seçeneklerini nasıl ileteceğiniz hakkında daha fazla bilgi için KSP dokümanlarına bakın.
Not: Kotlin CodeGen kullanırken ek kısıtlamaların olduğunu unutmamak gerekir. 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 sabit bir sonuç sakladığı düşüncesini önlemek için işlev olarak yeniden yazılması beklenir. Eklenen bir başka kısıtlama da Kotlin Kod Oluşturma için Odada artık Nullable koleksiyon döndürme türlerine izin verilmemesidir.
Uyarı: Kotlin Kod Oluşturma Aracı'nı 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ğerliliği önemlidir. Java'da bu genellikle 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 işlem, Java CodeGen'de herhangi bir soruna neden olmaz ancak Kotlin CodeGen'de hata mesajı alırsınız. Bunu önlemek için, boş değer yayınlandığını varsayarsak "Akış<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 bulunmasıyla ilgili olarak Room'daki mevcut çeşitli sorunları çözüyor. 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önüş türleri artık Odada desteklenmektedir. (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 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ı atlandığında, upsert sırasında karşılaşılanSQLite
özel durum istisnası ele alınıyorsa 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ı. 2.6.0-alpha03 sürümü bu kayıtları içerir.
Yeni Özellikler
- DAO işlevlerindeki iç içe yerleştirilmiş harita dönüş türleri artık Odada desteklenmektedir. (I13f48, 203008711)
API Değişiklikleri
@MapInfo
yerine artık@MapColumn
adında yeni bir tür ek açıklama oluşturuldu ve bu ek açıklama kullanımdan kaldırıldı. Bir@MapInfo
ek açıklamasında sağlanan her 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çinde doğrudan tür bağımsız değişkeninde kullanılmasıdır. Daha fazla bilgi için lütfen@MapColumn
belgelerine bakın. (Ib0305, b/203008711)- API dosyaları uyumluluğu engellemeye ek açıklama ekleyecek şekilde güncellendi (I8e87a, b/287516207)
- Room Gradle eklenti API'leri, her zaman varyant başına yapılandırma gerektirmeyecek şekilde güncellendi. Bu, eklentinin birden fazla dizin oluşturmadan tüm varyantlar için genel bir konum kabul edebileceği anlamına gelir. Böylece, daha kolay taşıma işlemleri gerçekleştirebilir, ancak aynı zamanda 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ı için de esnektir. (I09d6f, b/278266663)
Hata Düzeltmeleri
QueryInterceptorStatement
uygulamasında olası bellek sızıntısı güvenlik açığı düzeltildi. (I193d1)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ı. 2.6.0-alpha02 sürümü bu kayıtları içerir.
Room Gradle Eklentisi
Bu yeni sürüm, androidx.room
kimliğine sahip Room Gradle Eklentisi için yeni bir yapı içerir. Bu yapı, Gradle ek açıklama işlemcisi seçenekleri aracılığıyla şema giriş ve çıkışlarının bulunmasıyla ilgili mevcut çeşitli sorunları çözmektedir. Room Gradle Eklentisi, otomatik taşımalar için tüketilen şemalar oluşturacak ve derleme görevlerinin çıktısı olan şemaları, yeniden oluşturulabilir ve önbelleğe alınabilir derlemelere sahip olacak şekilde doğru şekilde yapılandıracak şekilde projeyi yapılandırır. Eklenti, temel şema konumunu yapılandırmak için bir DSL sunar:
room {
schemaDirectory("$projectDir/schemas/")
}
Ardından eklenti, şema dosyalarını farklı klasörlerde (ör. schemas/flavorOneDebug/com.package.MyDatabase/1.json
) oluşturmak için Room derleyicisini, çeşitli derleme görevlerini ve arka uçlarını (javac, KAPT, KSP) yapılandırır. Her zaman olduğu gibi bu dosyalar, doğrulama ve otomatik taşıma işlemleri için kullanılmak üzere kod deposuna giriş yapar. Ek açıklama işlemcisi seçenekleri yerine eklenti kullanılarak taşımanın ardından, mevcut şema dosyalarının eklenti tarafından oluşturulan tür dizinlerine kopyalanması gerekir. Bu, manuel olarak yapılması gereken tek seferlik bir taşıma işlemidir. Gelecekte geri bildirimler dikkate alınıp eklenti kararlı hale geldikten sonra developers.android.com adresindeki şema dokümanları güncellenecektir. Lütfen tekrar deneyin.
API Değişiklikleri
RoomDatabase.QueryCallback
, SAM dönüşüm kullanımlarına olanak tanıyan 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ı Robolectric'te somutlaştırırken 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ı. 2.6.0-alpha01 sürümü bu kayıtları içerir.
Yeni Özellikler
- KSP için Room'da değer sınıflarını destekleme. Room artık Öğeler'de değer sınıflarını destekleyebilir. (4194095)
- Kotlin kodu oluşturma(veya "Kotlin Kod Oluşturma") artık Odada (4297ec0) etkinleştirilebilir. Odada Kotlin CodeGen'i etkinleştirmek için KSP işlemci seçeneklerinize
room.generateKotlin
seçenek adını ekleyin. KSP'nin işlemci seçeneklerini nasıl ileteceğiniz hakkında daha fazla bilgi için KSP dokümanlarına bakın.
Not: Kotlin CodeGen kullanırken ek kısıtlamaların olduğunu unutmamak gerekir. 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 sabit bir sonuç sakladığı düşüncesini önlemek için işlev olarak yeniden yazılması beklenir. Eklenen bir başka kısıtlama da Kotlin Kod Oluşturma için Odada artık Nullable koleksiyon döndürme türlerine izin verilmemesidir.
Uyarı: Kotlin Kod Oluşturma Aracı'nı 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ğerliliği önemlidir. Java'da bu genellikle 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 işlem, Java CodeGen'de herhangi bir soruna neden olmaz ancak Kotlin CodeGen'de hata mesajı alırsınız. Bunu önlemek için, boş değer yayınlandığını varsayarsak "Akış<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 izleyicide değişiklikler yapan 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 kodlayıcıda DAO alıcıları veya DAO sorguları olarak soyut özelliklere izin vermeyin. Özellik değerinin sabit olduğu ve sabit bir sonuç sakladığı iddiasından 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 Robolectric 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 açık olup olmadığını kontrol ederken bir
isOpenInternal
kontrolü kullanın. (e91fb35) - Artık Odanın
acquireTransactionThread()
hesabında, tekrar katılan destek kaydının daha iyi işlenmesi mümkün. (219f98b). Askıya alma işlemi sırasında Room, işlem yürütücüsünden bir iş parçacığı 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 bu işlemler, işlem eş yordamı içine alınır. Genellikle işlem iş parçacığının işlemi başlatan ileti dizisinden farklı olması beklenir, ancak bazı durumlarda aynıdır. Bu tür yeniden girişlerin ele alınması içinwithTransaction()
, artık bir kontrol işine bağlı olmayacak şekilde yeniden düzenlendi. Bunun yerine, askıya alma işlemi bloğunu işlem iş parçacığındakirunBlocking
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 uyumsuzluğu sorunlarıyla karşılaşabileceğinizi unutmayın. Örneğin, kaynakla ilgili uyumsuz değişiklik olduğu bilinen bir değişiklik şudur:InvalidationTracker
içinObserver
içindekionInvalidate()
öğesini,MutableSet
yerineSet
türünde bir parametreye sahip olacak şekilde bildirmeniz gerekir. 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 varlık eklemeye veya çakışma varsa varlığı güncellemeye çalışan yeni bir kısayol ek açıklaması (
@Upsert
) eklendi. (I7aaab, b/241964353) - Odaya Sayfalama'da destek sunulması için yeni oda sayfalandırma yapıları
room-paging-rxjava2
,room-paging-rxjava3
veroom-paging-guava
eklendi. @MapInfo
ürününde belirsizliği gidermek için anahtar ve değer tablosu adları sağlamak üzere API'ler eklendi (Icc4b5)
Sürüm 2.5.0-rc01
7 Aralık 2022
androidx.room:room-*:2.5.0-rc01
yayınlandı. 2.5.0-rc01 sürümü bu kayıtları 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ı. 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?>
) karşıt değişkene (Array<out Any?>
) dönüştüren ç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
uygulamasını destekleyen minimum sürümü API 16 olacak şekilde kısıtlayın. Bunun nedeni, eski API'lerde birincil anahtar kısıtlaması ç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ılarak onları bozması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ı. 2.5.0-alpha03 sürümü 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
- Oda artık otomatik taşıma yabancı anahtar kısıtlama kontrolü sırasında
IllegalStateException
yerine birSQLiteConstraintException
yanıtı verecek. (I328dd) getOpenHelper
,getQueryExecutor
vegetTransactionExecutor
alıcıları / özellikleri için Kotlin kaynağıyla ilgili uyumsuz 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 kayıtları içerir.
Yeni Özellikler
- Odaya Sayfalandırma'da 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/903}
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,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, kaynakla ilgili uyumsuz değişiklik olduğu bilinen bir değişiklik şudur:
InvalidationTracker
içinObserver
içindekionInvalidate()
öğesini,MutableSet
yerineSet
türünde bir parametreye sahip olacak şekilde bildirmeniz gerekir.@MapInfo
ürününde belirsizliği gidermek için anahtar ve değer tablosu adları sağlamak üzere 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 çok eşlemeli bir sorgudaki belirsiz sütunları çözmeye ç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ı. 2.5.0-alpha01 sürümü bu kayıtları içerir.
API Değişiklikleri
- Oda
@IntDef
kullanımının Kotlin kaynaklarında zorunlu tutulmamasına neden olan sorun düzeltildi. (I75f41, b/217951311) - Mülk alıcılarında
@Query
öğesine yeniden izin verilmesini sağlayan bir kaynak uyumluluğu sorunu düzeltildi. (I0a09b) - "Oda-common" alanı, Java'dan Kotlin'e dönüştürüldü. (I69c48, b/206858235)
Not: Kitaplığı Kotlin'e 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 geçişi dönüştürüldü. (I2724b, b/206858622)
room-runtime
içindekipaging
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, çok işlemli kilit ve FrameworkSQLite* düzeyinde kullanım için API eklendi. (Ied267, b/193182592)
Hata Düzeltmeleri
- Kotlin kaynaklarında dahili mülkler için destek eklendi.
Bu, Odada küçük bir davranış değişikliğidir. Bu değişiklik, işlevlerin kaynak adlarını kullanarak bunları alıcı/belirleyici olarak mülklerle eşleştirir (önceden, 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 oluşturulan kodu güncellemeden sonra 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
- Room'un Kotlin 1.7'de askıya alma işlevlerini tanımamasına neden olan bir 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övdeye sahip Dao@Transaction
askıya alma işlevi için kod üretme sorunu düzeltildi. (Ia4ce5)- Room'un
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ı. 2.4.1 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Kotlin kaynaklarında dahili mülkler için destek eklendi.
Bu, Odada küçük bir davranış değişikliğidir. Bu değişiklik, işlevlerin kaynak adlarını kullanarak bunları alıcı/belirleyici olarak mülklerle eşleştirir (önceden, 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 oluşturulan kodu güncellemeden sonra 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'dan sonraki önemli değişiklikler
- Otomatik Taşıma İşlemleri: Oda artık, şemalar dışa aktarıldığı sürece taşıma işlemlerinin otomatik olarak oluşturulması için bir API sunmaktadır. Room'a otomatik taşıma oluşturması gerektiğini bildirmek için iki sürüm arasında otomatik olarak taşınacak sürümleri bildirmek üzere
@Database#autoMigrations
adlı yeni bir özelliği kullanabilirsiniz. Room; tablo 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. Daha fazla bilgi için@AutoMigration
dokümanlarına bakın. - Otomatik Taşıma İşlemlerinde Bağımlılık Yerleştirme:
@ProvidedAutoMigrationSpec
, çalışma zamanındaRoomDatabase.Builder#addAutoMigrationSpec()
aracılığıyla birAutoMigrationSpec
sağlanacağını beyan eden yeni bir API'dir. Bu, bir bağımlılık yerleştirme çerçevesinin karmaşık bağımlılıklara ihtiyaç duyduklarında bu tür özellikler sağlamasına olanak tanır. - Otomatik Taşıma İşlemleri için Taşıma Test Yardımcısı Desteği: Odadaki
MigrationTestHelper
, test edilen veritabanı sınıfını alan yeni bir oluşturucu API sağlayarak otomatik taşımaları destekleyecek şekilde güncellendi. Bu sayede yardımcı,runMigrationsAndValidate
sırasında aynı şekilde otomatik taşıma işlemi ekleyebilir. - Oda Çağrısı Desteği:
androidx.paging.PagingSource
değerini döndüren Oda sorguları için yerel Sayfalama 3.0 desteği sağlayanandroidx.room:room-paging
yayınlandı. - İlişkisel Sorgu Yöntemleri: Room artık JOIN ifadeleri için yararlı olan çoklu harita dönüş türü
@Dao
yöntemlerini destekliyor. Desteklenen çoklu harita türleriMap
,SparseArray
,LongSparseArray
ile Guava'nınImmutableMap
,ImmutableSetMultimap
veImmutableListMultimap
'dir.
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 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ı. 2.4.0-beta02 sürümü bu kayıtları içerir.
Yeni Özellikler
- @MapInfo öğesine SparseArray ve LongSparseArray desteği ekledik. (Ic91a2b/138910317)
Hata Düzeltmeleri
- Türlerdeki boş değerlilik bilgilerini dikkate alan yeni bir TypeConverter analizcisi ekledik. Bu bilgiler yalnızca KSP'de mevcut olduğundan, varsayılan olarak yalnızca KSP'de etkindir. Herhangi bir soruna neden olursa ek açıklama işlemcisineroom.useNullAwareTypeAnalysis=false ileterek özelliği kapatabilirsiniz. Bu durumda lütfen dosya hatası oluşturun. Bu bayrak ileride kaldırılacaktır. Bu yeni TypeConverter analiz aracı ile, yeni analiz aracının bunları null denetimiyle sarmalayabilme olanağı bulunduğundan, yalnızca null alan TypeConverter öğelerinin sağlanması önerilir. Bunun, ek açıklama işlemcisi olarak KAPT veya Java kullanan kullanıcılar (KSP'nin aksine) üzerinde herhangi bir etkisi olmadığını ve türlerde boş değer atanabilirlik bilgisinin bulunmadığını unutmayın. (Ia88f9, b/193437407)
- Bir FTS varlığı, ICU jeton belirleyicisini kullandığını bildirdiğinde Room'un SQL hatasıyla derleme yapmasına 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 yaşanan sorun giderildi. (I5fcb1b/193798291)
- LEFT JOIN sorgularında ilişkisel sorgu yöntemi döndürme türleriyle ilgili bir sorunu çözdük. Bu değişikliklerle, 1-çok eşlemenin mevcut olması durumunda, bir anahtar için döndürülen koleksiyon, imleçte bulunmayan geçersiz değer nesnesini içermez. Geçerli değer bulunamazsa bir anahtar, boş bir koleksiyona 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 sayfalandırma tarafından oluşturulan PagingSource uygulaması artık
RoomDatabase.Builder
üzerinden geçirilenqueryExecutor
parametresini kullandığından ö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 kayıtları içerir.
Yeni Özellikler
- UUID için yerleşik 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 açıktır, ancak bunları 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
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>
- Oda ile Paging3'ü kullanırken
room-paging
öğesini gerekli bir yapı haline getirin. (Ieaffe)
Hata Düzeltmeleri
- Sorgu, harita anahtarından bir sütunun ORDER BY ifadesini içerdiğinde çoklu eşleme sorgu sonuçlarının doğru sıralanmadığı sorun giderildi. (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ı. 2.4.0-alpha04 sürümü bu kayıtları içerir.
Yeni Özellikler
Room artık JOIN ifadeleri için yararlı olan çoklu harita dönüş türü
@Dao
yöntemlerini destekliyor. Desteklenen çoklu harita türleriMap
ile Guava'nınImmutableMap
,ImmutableSetMultimap
veImmutableListMultimap
haritalarıdır.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 Bir İ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 ayrıca
LiveData
, RxObservable
veya eş yordamlarFlow
gibi desteklenen eşzamansız dönüş türlerinde de sarmalanabilir.
Odadan Çağrı
androidx.paging.PagingSource
değerini döndüren Oda sorguları için yerel Sayfa 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ı Sayfa 3.0 API'leri üzerinde derlenmiş bir uygulamayla değiştirir. Yeni PagingSource uygulaması, anahtarları farklı şekilde ayrıştırdığından, Room'un PagingSource'a manuel olarak sağlanan herhangi bir anahtarın, Pager oluşturucusu aracılığıyla iletilen initialKey dahil olmak üzere bu davranış değişikliğini dikkate alması gerekir. SayfalarKey
konumundan yüklenmeye başlayacak. Yüklenen ilk öğeKey
olacak. Bu,LoadParams.Refresh.Key
öğesinin 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ırakma işlemi Oda 2.3'te kullanıma sunulan mevcut Sayfa 3.0 desteğine geçiş yapacaktır. 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 yolunuza ekleyin. Gradle kullanıyorsanız aşağıdaki snippet'i build.gradle dosyanıza 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 kayıtları içerir.
API Değişiklikleri
- Test edilen veritabanı sınıfını alan yeni bir kurucu API'si sağlayarak Room'un
MigrationTestHelper
API'sini, otomatik taşıma işlemlerini destekleyecek şekilde güncelleyin. Bu sayede yardımcı,runMigrationsAndValidate
sırasında aynı şekilde otomatik taşıma işlemi ekleyebilir.
Hata Düzeltmeleri
Room'un, Apple'ın M1 çiplerini desteklemek için SQLite yerel kitaplığıyla ilgili bir sorun düzeltildi. (b/174695268
@Transaction işlevinin döndürme türü Akış (I56ddd, b/190075899) olduğunda Room'un hata vermemesi sorunu düzeltildi
Otomatik taşıma işlemlerinde dizinlerle ilgili bir sorun düzeltildi. b/177673291
Bağımlılık Güncellemeleri
- Odanın KSP desteği artık
1.5.10-1.0.0-beta01
Servis Sağlayıcıya 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ı. 2.4.0-alpha02 sürümü bu kayıtları içerir.
API Değişiklikleri
@ProvidedAutoMigrationSpec
, çalışma zamanındaRoomDatabase.Builder#addAutoMigrationSpec()
aracılığıyla birAutoMigrationSpec
sağlanacağını beyan eden yeni bir API'dir. Bu, bir bağımlılık yerleştirme çerçevesinin karmaşık bağımlılıklara ihtiyaç duyduklarında bu tür özellikler sağlamasına olanak tanır.
Hata Düzeltmeleri
@DatabaseView
dosyalarının düzgün bir şekilde yeniden oluşturulmadığı durumlarda otomatik taşıma işlemleriyle ilgili sorun giderildi.
Harici Katkı
- Oda
JournalMode.TRUNCATE
hizmetinde,InvalidationTracker
geri çağırma işlevinin bazen geçersiz bir şekilde, çok geç çağrıldığı veya hiç çağrılmadığı bir sorun düzeltildi.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ı. 2.4.0-alpha01 sürümü bu kayıtları içerir.
Yeni Özellikler
- Otomatik Taşıma İşlemleri: Oda artık, şemalar dışa aktarıldığı sürece taşıma işlemlerinin otomatik olarak oluşturulması için bir API sunmaktadır. Room'a otomatik taşıma oluşturması gerektiğini bildirmek için iki sürüm arasında otomatik olarak taşınacak sürümleri bildirmek üzere
@Database#autoMigrations
adlı yeni bir özelliği kullanabilirsiniz. Room; tablo 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 göz atın.
Hata Düzeltmeleri
- Ekstra parantez içeren
defaultValue
öğesinin, Room'un şema doğrulaması tarafından yanlış doğrulanması sorunu giderildi. 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'dan sonraki önemli değişiklikler
- Yerleşik Enum Desteği: Odada artık varsayılan olarak bir Enum to String ve bir Enum türü dönüştürücüsü sağlanmaması durumunda varsayılan olarak kullanılacak. Bir numaralandırma için tür dönüştürücü zaten varsa Room, varsayılan değere göre bunu kullanmaya öncelik verir.
- Sorgu Geri Çağırması: Oda, sorgular yürütülmek üzereyken artık genel bir RoomDatabase API geri çağırma işlevi sunar.Bu, hata ayıklama derlemelerine giriş yapmak için yararlı olabilir. Geri arama,
RoomDatabase.Builder#setQueryCallback()
aracılığıyla ayarlanabilir. - Pre-packaged Improvement: Odada artık giriş akışından okunan, önceden paketlenmiş bir veritabanı kullanarak veritabanı oluşturmak için kullanılan API'ler var. Bu, önceden paket veritabanının gzip'lenmesi gibi durumlara izin verir.
- Sağlanan Tür Dönüştürücüler: Odada, uygulamanın başlatmayı 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ü Akan, Tek, Belki ve Uyumlu olan DAO yöntemleri bildirebilirsiniz. Buna ek olarak, 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öndürme 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 sorun düzeltildi. (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
- 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 tetiklemesine 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ı
- Odaya
@SkipQueryVerification
ile ek açıklama eklenmişse@Query
ek açıklamalı bir DAO yönteminde Oda'nın bir POJO dönüş türünü kabul etmesine izin verin. Oda,@RawQuery
ek açıklamalı bir 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. Katkıda bulunan "Markus Riegel | hey@marcorei.com". (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
Odada artık Kotlin Sembol İşleme KSP için deneysel destek var.
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 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ısaltma özelliği yalnızca KAPT kullanan başka işlemcilerin olmaması durumunda geçerlidir. Bilinen sorunlar için b/160322705 adresine göz atın.
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 olanağına sahiptir. Bu deneysel bir özelliktir ve
RoomDatabase.Builder#setAutoCloseTimeout()
araması yapılarak 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 stratejiyi etkin bir şekilde yoksayarak bu 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 kayıtları içerir.
Yeni Özellikler
- Room, sorgular yürütülmek üzereyken hata ayıklama derlemelerine giriş için yararlı olabilecek genel bir geri çağırma API'si
RoomDatabase.QueryCallback
sunar. 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 bir Enum'dan Dizeye dönüştürme türünden tersi kullanılacak şekilde ayarlanacak. Bir numaralandırma için tür dönüştürücü zaten varsa Room, varsayılan değere göre bunu kullanmaya öncelik verir. (b/73132006)
Bilinen Sorun
- Enum için okuma için tek yönlü bir tür dönüştürücü zaten varsa Room, yerleşik String to Enum dönüştürücüsünü yanlışlıkla kullanabilir. Bu, istenmeyebilir. Bu bilinen bir sorundur ve iki yönlü bir dönüştürücü haline getirilerek düzeltilebilir. Bkz. b/175707691
Hata Düzeltmeleri
- Room'un 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 Room'un 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 etkinleştirilmişse ve API 16 veya daha büyükse oda artık varsayılan olarak
beginTransactionNonExclusive
kullanacak. Saygılarımla ‘Ahmed 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 kayıtları 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)Odada artık giriş akışından okunan, önceden paketlenmiş bir veritabanı kullanarak veritabanı oluşturmak için kullanılan API'ler var. Bu, önceden paket veritabanının gzip'lenmesi gibi durumlara izin verir. "Ahmed El-Helw ahmedre@gmail.com"a (3e6792, b/146911060) teşekkür ederiz
API Değişiklikleri
@ForeignKey
ek açıklamasına eksik hedef eklendi ve@Entity
ek açıklaması dışında kullanımını önledi. (Iced1e)RoomDatabase.java
tablosundakimCallbacks
alanı artık gizleniyor. (d576cb, b/76109329)
Hata Düzeltmeleri
TypeConverters'ın yalnızca sütunları / alanları dönüştürmek ve satırları dönüştürmek için kullanılamayacağını netleştirmek üzere 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 dizilerini netleştirmek için gözlemci yöntemleri ekleme/kaldırma belgelerini güncelleyin (Ifd1d9, b/153948821)
Room ile ilgili, satır kimliği sütununu bildiren FTS tablolarının yanlış bir ş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 sorun yaşamamak için
RoomDatabase
içindekiConcurrentHashMap
öğesiniCollections.synchronizedMap()
ile değiştirin (d1cfc7, b/162431855)Ö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ı. 2.3.0-alpha02 sürümü bu kayıtları içerir.
Yeni Özellikler
- RxJava3 Desteği: Oda artık RxJava3 türlerini destekliyor. RxJava2'ye benzer şekilde, dönüş türü Akan, Tek, Belki ve Uyumlu olan DAO yöntemleri bildirebilirsiniz. Buna ek olarak, RxJava3'ü desteklemek için yeni bir
androidx.room:room-rxjava3
yapısı kullanıma sunulmuştur. (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ı. 2.3.0-alpha01 sürümü 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ı destekleyecektir.@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ı kaldıracak yeni bir kullanışlı ek açıklamadır.room.expandProjection
işlemci seçeneğinin desteği sonlandırıldı. Yıldız projeksiyonlu Oda optimizasyonu sorgularının yerine@RewriteQueriesToDropUnusedColumns
kullanın.@RewriteQueriesToDropUnusedColumns
değerinin,@Embedded
alanlarını içeren döndürme türleri için sunulanroom.expandProjection
sütun çakışması çö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ılayamaması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 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ı. Sürüm 2.2.6 bu kayıtları içerir.
Hata Düzeltmeleri
- Room'un 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ı. Sürüm 2.2.5 bu kayıtları içerir.
Hata Düzeltmeleri
MultiInstanceInvalidationService
DirectBootAware yapın. "Mygod contact-git@mygod.be" adlı kullanıcıya (b/148240967) teşekkür ederiz- Ç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 giderildi. (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ı. 2.2.4 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- İşlem başlamadan önce eş zamanlı iptal hemen iptal edilirse 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 bir 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 herhangi bir taşıma işlemi gerçekleştirmemiş ve şemasında dizinler içeren eski bir karma içeren bir veritabanını doğrulayamamasına neden olan 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ır içeren bire bir ilişki toplamanın, Room'un 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 kayıtları içerir.
Hata düzeltmeleri
- Room'un derleyici seçeneği AÇIK olduğunda
CURSOR_MISMATCH
hakkında yanlış bir şekildeexpandProjection
uyarısı vermesine 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 bu yana yapılan önemli değişiklikler
- Önceden Paketlenmiş Veritabanı: Önceden doldurulmuş bir veritabanı dosyası verildiğinde, bir
RoomDatabase
oluşturmak içinRoomDatabase.Builder
uygulamasında iki yeni API kullanılabilir.createFromAsset()
, önceden doldurulmuş veritabanı dosyasının APK'nın öğeler klasöründe olması içindir.createFromFile()
ise dosyanın rastgele bir konumda bulunduğu durumlar içindir. Bu API'lerin kullanımı, yıkıcı taşıma işlemlerinin davranışını değiştirir. Böyle bir durumda, Room yedek taşıma sırasında önceden doldurulmuş veritabanını varsa yeniden kopyalamaya çalışır. Aksi takdirde, tüm tabloları kaldırıp yeniden oluşturmaya yedeklenir. 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 parçasıdır ve taşımalar sırasında doğrulanırsa doğrulanır. b/64088772 - Çoktan Çok İlişkiler:
@Relation
artık yeni bir@Junction
ek açıklamasını alanassociateBy
özelliğine sahip. Bu özellik, bir bağlantı tablosu (birleştirme tablosu olarak da bilinir) aracılığıyla karşılanması gereken ilişkiyi tanımlamak için kullanılır. b/69201917 - Bire Bir İlişkiler: Ek açıklaması
@Relation
olan POJO alanlarındakiList
veyaSet
türünde olmayla ilgili kısıtlama kaldırıldı. Bu sayede tek değerli ilişkilerin temsil edilebilirliği sağlandı. b/62905145 - Target Entity:
@Insert
,@Update
ve@Delete
DAO ek açıklamalarının artık yeni birtargetEntity
özelliği vardır. Bu özellik, DAO yönteminin üzerinde işlem yapması gereken 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 izin verir. b/127549506 - Coroutines Akışı:
@Query
DAO yöntemleri artıkFlow<T>
döndürme 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 bildirmek hatadır. Room bunun yerineFlow
kullanmanızı ve ardından,Flow
öğesiniChannel
'ye 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 yalıtım ek açıklama işlemcisidir ve artımlılık, işlemci seçeneği
room.incremental
ile 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. Artımlılığı gelecekte kullanıma sunulacak kararlı bir sürümde 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öndürme türündeki sütunları içermesini sağlayan 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. Daha sonra Room, döndürülen türü karşılayacak minimum sütun kümesi getirilecek şekilde sorguyuSELECT id, title FROM Song
olarak yeniden yazar. Bu sayede sorgu, döndürülen POJO türündeki hiç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 kaydetmeleri burada bulabilirsiniz.
2.2.0-beta01
adlı Odadan bu yana herkese açık bir 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 göndermeyi 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, Room'un eski şema karma kodunu kabul etmemesine ve geçersiz şema nedeniyle çalışma zamanı kilitlenmesine neden olmasına 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 Akışı:
@Query
DAO yöntemleri artıkFlow<T>
döndürme 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 bildirmek hatadır. Room bunun yerineFlow
kullanmanızı ve ardından,Flow
öğesiniChannel
'ye 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öndürme türündeki sütunları içermesini sağlayan 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. Daha sonra Room, döndürülen türü karşılayacak minimum sütun kümesi getirilecek şekilde sorguyuSELECT id, title FROM Song
olarak yeniden yazar. Bu sayede sorgu, döndürülen POJO türündeki hiçbir alanla eşleşmeyen ekstra sütunlar döndürdüğünde gösterilenCURSOR_MISMATCH
uyarısını ortadan kaldırır. onDestructiveMigrate
, Room'un bir veritabanını yıkıcı şekilde taşıması içinRoomDatabase.Callback
öğesine eklenen yeni bir geri çağırma API'sidir. b/79962330
Hata Düzeltmeleri
- Room'un, alan korunduğunda alan belirleyici olarak bir yöntem kullanarak yanlış kod oluşturmasına neden olan hata düzeltildi. b/136194628
- Çok örnekli 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
- Room'un,
@RawQuery
ile ek açıklama olarak eklenen devralınan bir 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, benzer birByteBuffer
kullanacak şekilde güncellendi. b/137881998 - Room'un
@Insert
,@Update
ve@Delete
öğelerinin kısmi varlık parametreleri olarak kullanılan POJO'lardaki eksik belirleyiciler hakkında şikayette bulunmasına neden olan hata düzeltildi. b/138664463 - Varlık sınıfı belirli DAO yöntemlerinde kullanıldığında, Room'un
@Entity
aracılığıyla yoksayılan bir sütun için eksik alıcı ve belirleyiciler hakkında şikayette bulunmasına neden olan hata düzeltildi. b/138238182 - Room'un 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 bir sorgu yürütülürken çalışma zamanı istisnasına neden oluyor. b/137254857
Sürüm 2.2.0-alpha01
10 Temmuz 2019
Yeni Özellikler
- Önceden Paketlenmiş Veritabanı: Önceden doldurulmuş bir veritabanı dosyası verildiğinde, bir
RoomDatabase
oluşturmak içinRoomDatabase.Builder
uygulamasında iki yeni API kullanılabilir.createFromAsset()
, önceden doldurulmuş veritabanı dosyasının APK'nın öğeler klasöründe olması içindir.createFromFile()
ise dosyanın rastgele bir konumda bulunduğu durumlar içindir. Bu API'lerin kullanımı, yıkıcı taşıma işlemlerinin davranışını değiştirir. Böyle bir durumda, Room yedek taşıma sırasında önceden doldurulmuş veritabanını varsa yeniden kopyalamaya çalışır. Aksi takdirde, tüm tabloları kaldırıp yeniden oluşturmaya yedeklenir. 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 parçasıdır ve taşımalar sırasında doğrulanırsa doğrulanır. b/64088772Not: 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ı alanassociateBy
özelliğine sahip. Bu özellik, bir bağlantı tablosu (birleştirme tablosu olarak da bilinir) aracılığıyla karşılanması gereken ilişkiyi tanımlamak için kullanılır. b/69201917 - Bire Bir İlişkiler: Ek açıklaması
@Relation
olan POJO alanlarındakiList
veyaSet
türünde olmayla ilgili kısıtlama kaldırıldı. Bu sayede tek değerli ilişkilerin temsil edilebilirliği sağlandı. b/62905145 - Target Entity:
@Insert
,@Update
ve@Delete
DAO ek açıklamalarının artık yeni birtargetEntity
özelliği vardır. Bu özellik, DAO yönteminin üzerinde işlem yapması gereken 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 izin verir. b/127549506 - Gradle Artımlı Ek Açıklama İşlemcisi: Oda artık bir Gradle yalıtım ek açıklama işlemcisidir ve artımlılık, işlemci seçeneği
room.incremental
ile 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. Artımlılığı gelecekte kullanıma sunulacak kararlı bir sürümde varsayılan olarak etkinleştirmeyi planlıyoruz. b/112110217
Hata Düzeltmeleri
- Oda, sorgu tamamlanmadan önce sorgunun Rx akışı atıldığında
EmptySetResultException
öğesini artık genel hata işleyiciye yaymaz. b/130257475 @RawQuery
ile açıklama eklenmiş bir askıya alma DAO 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 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
2.0.0'dan sonraki önemli değişiklikler
- FTS: Oda artık FTS3 veya FTS4 eşleme tablosuna sahip varlıkları destekliyor.
@Entity
ile ek açıklama eklenen 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. - 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. - Couroutine'ler: 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çinRoomDatabase.withTransaction
uzantı işlevini de sağlar. - Otomatik Değer: Oda artık AutoValue ek açıklamalı sınıflarını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. Room'un düzgün şekilde anlayabilmesi için bu ek açıklamalara@CopyAnnotations
eşlik etmesi gerektiğini de unutmayın. - Ek Eş Zamansız Desteği:
@Insert
,@Delete
veya@Update
ek açıklamasına sahip DAO yöntemlerinin yanı sıraINSERT
,DELETE
veyaUPDATE
ifadelerini içeren@Query
yöntemleri artık Rx döndürme türleriniCompletable
,Single
,Maybe
ile Guava'nın dönüş türüListenableFuture
'yi desteklemektedir ve askıya alma işlevleri de olabilir. enableMultiInstanceInvalidation
, aynı veritabanı dosyasını kullanarak RoomDatabase'in birden fazla örneğinde geçersiz kılmayı etkinleştirmek içinRoomDatabase.Builder
alanında yeni bir API'dir.fallbackToDestructiveMigrationOnDowngrade
, eski sürüme geçiş yapılması durumunda veritabanını otomatik olarak yeniden oluşturanRoomDatabase.Builder
alanında yeni bir API'dir.ignoredColumns
,@Entity
ek açıklaması içinde bulunan 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 şekilde kullanır ve mülkleri
vars
olarak tanımlama ihtiyacını ortadan kaldırır.
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ümlere sahip kullanıcılar için çift tırnak işareti kullanım uyarısı düzeltildi. b/131712640
- Birbirine paralel olarak birden fazla geçersiz kılma denetimi gerçekleştiğinde 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 değişiklik yapılmadan 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ı olarakCoroutineScope
olan bir fonksiyon bloğunu artık almayacak şekilde değiştirildi. Bu, işlem bloğundaki öğeleri eşzamanlı olarak çalıştırmak için gereken ekcoroutineScope { }
sarmalayıcının atlanmasını engeller.
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ştirilir, böylece Room veritabanı işlemlerini yürütmek için birden fazla iş parçacığı kullanmayacaktır.
Yürütücünün işlemlerde kullanılacak şekilde yapılandırılmasına olanak tanımak için
RoomDatabase.Builder.setTransactionExecutor(Executor)
eklendi. RoomDatabase.runInTransaction(Callable)
, işaretli istisnaları artık RuntimeExceptions konumuna kaydırmaz. b/128623748
Hata Düzeltmeleri
- Hem içerik tablosu hem de harici içerik FTS tablosunun gözlemcileri eklendiğinde geçersiz kılma izleyicinin içerik tablosunu gözlemlemeyi bırakmasına neden olan hata düzeltildi. b/128508917
- Room'un SQLite dil bilgisi, SQLite 3.24.0'la 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. Oda uzantısı işlevleri ve eş yordam desteğiyle birlikteroom-ktx
yapısında mevcuttur.@Transaction
ile ek açıklamalı, 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ı adlandırma uygulanarakroom-ktx
olarak yeniden adlandırıldı.RoomDatabase
içinbeginTransaction
,setTransactionSuccessful
veendTransaction
kullanımdan kaldırılmış, bunların yerinerunInTransaction
veroom-ktx
uzantı işlevi (withTransaction
) kullanıma sunulmuştur.
Hata Düzeltmeleri
- Kullanılan jeton ayırıcı basit olduğunda jeton oluşturucu bağımsız değişkenlerinin çıkarılmasına neden olan hata düzeltildi. b/125427014
- Room'un, 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
veyaDELETE
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- Room'un 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ılmış yöntem kullanımının, oluşturulan kodda doğru şekilde engellenmemesine neden olan bir 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ızamaven { url "https://kotlin.bintray.com/kotlinx/" }
eklenerek giderilebilir.
Sürüm 2.1.0-alpha04
25 Ocak 2019
Yeni Özellikler
INSERT
,UPDATE
veyaDELETE
ifadeleri içeren@Query
ek açıklamasına sahip DAO yöntemleri artık eşzamansızSingle
,Mayble
,Completable
veListenableFuture
türlerini döndürebilir. Askıya alma işlevleri de olabilirler. b/120227284
API / Davranış Değişiklikleri
@Transaction
ek açıklamasına sahip, soyut olmayan bir DAO yöntemiSingle
,Mayble
,Completable
,LiveData
veyaListenableFuture
gibi eşzamansız bir tür döndürürse oda hata verir. İşlemler iş parçacığı şeklinde sınırlı olduğundan, Oda'nın farklı iş parçacıklarında sorgularla işlem yapabilen bir işlev etrafında işlem başlatıp sonlandırması şu anda mümkün değildir. b/120109336OnConflictStrategy.FAIL
veOnConflictStrategy.ROLLBACK
, Android'in mevcut SQLite bağlamalarıyla amaçlandığı gibi çalışmadığından@Deprecated
oldu. b/117266738
Hata Düzeltmeleri
- DAO yöntemi bir askıya alma işlevi olduğunda Room'un döndürme türündeki TypeConverter'ı doğru şekilde kullanmamasına neden olan hata düzeltildi. b/122988159
- Room'un devralınan askıya alma işlevlerinin yanlışlıkla askıya alınma olmayan olarak tanımlanmasına neden olan hata düzeltildi. b/122902595
- Bir
@Embedded
alanı üst sınıftayken ve birden fazla alt sınıfta kullanıldığında Room'un yanlış kod oluşturmasına neden olan hata düzeltildi. b/121099048 beginTransaction()
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 belirteçleştiricilerin Room tarafından kullanılmasına olanak tanır. Yerleşik belirteçlerFtsOptions
içinde dize sabitleri olarak tanımlanmaya devam eder. b/119234881
Yeni Özellikler
- Couroutine'ler: DAO yöntemleri artık askıya alma işlevleri olabilir. Odada askıya alma işlevlerini desteklemek için yeni bir yapı yayınlandı,
room-coroutines
. b/69474692 @Insert
,@Delete
veya@Update
ek açıklamasına sahip DAO yöntemleri artık döndürme türü olarakListenableFuture
değerini destekliyor. b/119418331
Hata Düzeltmeleri
- Room'un,
@Entity
öğesininignoredColumns
özelliğindeki sütunlara sahip bir oluşturucuyu yanlışlıkla bulmaya çalışmasına neden olan hata düzeltildi. b/119830714 - Room'un, oluşturulan uygulamada DAO yöntem parametrelerini nihai olarak işaretlememesine neden olan hata düzeltildi. b/118015483
- Özel simgeler içeren bir sorguda hata bildirilirken Room'un işlemcisinin kilitlenmesine neden olan hata düzeltildi. b/119520136
- Room'un
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ö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
içinde bir@DatabaseView
öğesine referans verme desteği eklendi. b/117680932
Hata Düzeltmeleri
- Bir Rx döndürme türü abone olurken ve öğe imha ederken Room'un ana iş parçacığında disk G/Ç işlemi gerçekleştirmesine neden olan hata düzeltildi. b/117201279
- Room'un 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
- Bağımsız değişken içermeyen bir Kotlin varsayılan yöntemi içeren
DAO
arayüzü uygulaması için Room'un yanlış kod oluşturmasına neden olan hata düzeltildi. b/117527454 - Room'un 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 ek açıklamalı sınıflara, tam metin eşleme tablosu olan bir sınıf bildirmek için artık@Fts3
veya@Fts4
ile ek açıklama eklenebilir. Daha fazla özelleştirme için FTS seçeneklerini ek açıklamanın yöntemleriyle kullanabilirsiniz. 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ı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çıklamalı sınıfın soyut yöntemlerinde bildirilebilir. Room'un düzgün şekilde anlaması için bu ek açıklamalara@CopyAnnotations
eşlik etmesi gerektiğini unutmayın. b/62408420 - Ek Rx Dönüş Türleri Desteği:
@Insert
,@Delete
veya@Update
ek açıklamasına sahip DAO yöntemleri artık Rx dönüş türleriniCompletable
,Single<T>
veMaybe<T>
desteklemektedir. b/63317956 @Relation
ile Sabit Türler: Oda, önceden@Relation
ek açıklamalı alanın ayarlanabilir olmasını gerektiriyordu ancak artık yapıcı parametreler olabilir.enableMultiInstanceInvalidation
:RoomDatabase.Builder
ürününde, aynı veritabanı dosyasını kullanarak RoomDatabase'in birden fazla ö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/62334005fallbackToDestructiveMigrationOnDowngrade
: Eski sürüme geçiş yapıldığında veritabanını otomatik olarak yeniden oluşturacak,RoomDatabase.Builder
alanındaki yeni bir API'dir. b/110416954ignoredColumns
:@Entity
ek açıklamasında, yoksayılan alanları ada göre listelemek için kullanılabilecek yeni bir API'dir. Bir varlıkta devralınan alanları yoksaymak için kullanışlıdır. b/63522075
API / Davranış Değişiklikleri
RoomDatabase
kapsamındakimCallback
vemDatabase
adlı kullanıcılar artık@Deprecated
durumda ve Odanın bir sonraki ana sürümünde kaldırılacak. b/76109329
Hata Düzeltmeleri
- Room'un başlatma sırasında bozuk bir veritabanından düzgün şekilde kurtarılamamasına veya başlatma sırasında hatalı bir taşıma işleminin gerçekleştirilemediği iki sorun düzeltildi. b/111504749 ve b/111519144
- Room 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 kalmayacaktır. 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 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ünden herhangi bir değişiklik yapılmadan yayınlanmıştır.
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ı 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 giderildi
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.
Room'un 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
- Bir Kotlin POJO'su, 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
veMaybe
uygulamalarında, sorguyu önceden geri dönüştüren ve döndürülenSingle
veyaMaybe
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ına
VACUUM
işlemi uygulamaz. 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 olarakString
geçirilmesini kabul etmemektedir. [SupportSQLiteQuery][ref-SupportSQLiteQuery] kullanmanız gerekiyor. (Bağımsız değişken desteğiyle [SupportSQLiteQuery][ref-SupportSQLiteQuery] örneğini kolayca oluşturmak için [SimpleSQLiteQuery][ref-SimpleSQLiteQuery] bölümüne bakın). - RoomDatabase.Builder'ın [fallbackToDestructiveMigrationFrom][ref-fallbackToDestructiveMigrationFrom] yöntemi artık
vararg Integer
yerinevararg int
kabul etmektedir.
Hata Düzeltmeleri
- [RoomDatabase.clearAllTables][ref-clearAllTables] artık bir WAL kontrol noktası ayarlayıp veritabanını
VACUUM
ayarlayarak işletim sistemine alan geri döndürmeye çalışıyor. - [
@RawQuery
][ref-RawQuery] artıkobservedEntities
mülkü için herhangi bir Pojo'yu kabul ediyor. Bunun için Pojo,Embedded
alanları veyaRelation
'leri aracılığıyla bir veya daha fazla varlığa referans veriyor. b/74041772 - Sayfalandırma: Room'un 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 derleyemiyordu. b/74128314
Sürüm 1.1.0-alpha1
22 Ocak 2018
Yeni Özellikler
RawQuery
: Bu yeni API@Dao
yöntemlerinin SQL'i b/62103290, b/71458963 sorgu parametresi olarak almasını sağlar.fallBackToDestructiveMigrationsFrom
:RoomDatabase.Builder
'daki bu yeni API, başlangıç şeması sürümlerinde yıkıcı taşıma işlemlerine izin verileceği yerler üzerinde daha ayrıntılı kontrol sağlar (fallbackToDestructiveMigration ile karşılaştırıldığında) b/64989640- Room artık yalnızca yeni Paging API'lerini (alfa-4+) destekliyor ve kullanımdan kaldırılan
LivePagedListProvider
için destek bırakılıyor. Yeni Oda alfa sürümünü kullanmak içinalpha-4
veya daha yüksek bir sayfa sürümü kullanmanız ve henüz yapmadıysanızLivePagedListProvider
konumundanLivePagedListBuilder
öğesine 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ılmaz. b/64290754