Realm v3.1.0 Release Notes
Release Date: 2017-04-05 // almost 7 years ago-
๐ฅ Breaking Changes
- โก๏ธ Updated file format of Realm files. Existing Realm files will automatically be migrated to the new format when they are opened, but older versions of Realm cannot open these files.
- [ObjectServer] Due to file format changes, Realm Object Server 1.3.0 or later is required.
โจ Enhancements
- โ Added support for reverse relationships through the
@LinkingObjects
annotation. Seeio.realm.annotations.LinkingObjects
for documentation.
- This feature is in
@Beta
. - Queries on linking objects do not work. Queries like
where(...).equalTo("field.linkingObjects.id", 7).findAll()
are not yet supported. - Backlink verification is incomplete. Evil code can cause native crashes.
- This feature is in
- The listener on
RealmObject
will only be triggered if the object changes (#3894). - โ Added
RealmObjectChangeListener
interface that provide detailed information aboutRealmObject
field changes. - Listeners on
RealmList
andRealmResults
will be triggered immediately when the transaction is committed on the same thread (#4245). - The real
RealmMigrationNeededException
is now thrown instead ofIllegalArgumentException
if no migration is provided for a Realm that requires it. RealmQuery.distinct()
can be performed on unindexed fields (#2285).targetSdkVersion
is now 25.- [ObjectServer] In case of a Client Reset, information about the location of the backed up Realm file is now reported through the
ErrorHandler
interface (#4080). - [ObjectServer] Authentication URLs now automatically append
/auth
if no other path segment is set (#4370).
๐ Bug Fixes
- Crash with
LogicError
withBad version number
on notifier thread (#4369). - ๐
Realm.migrateRealm(RealmConfiguration)
now fails correctly with anIllegalArgumentException
if aSyncConfiguration
is provided (#4075). - Potential cause for Realm file corruptions (never reported).
- โ Add
@Override
annotation to proxy class accessors and stop using raw type in proxy classes in order to remove warnings from javac (#4329). findFirstAsync()
now returns an invalid object if there is no object matches the query condition instead of running the query repeatedly until it can find one (#4352).- ๐ฒ [ObjectServer] Changing the log level after starting a session now works correctly (#4337).
Internal
- ๐ Using the Object Store's Session and SyncManager.
- โฌ๏ธ Upgraded to Realm Sync 1.5.0.
- โฌ๏ธ Upgraded to Realm Core 2.5.1.
- โฌ๏ธ Upgraded Gradle to 3.4.1