On this page
This class describe how data is saved to Realm when saving whole objects.
Enum Constant and Description
With this flag enabled, fields will not be written to the Realm file if they contain the same value as the value already present in the Realm.
- Methods inherited from class java.lang.Object :
- Methods inherited from class java.lang.Enum :
public static final ImportFlag
With this flag enabled, fields will not be written to the Realm file if they contain the same value as the value already present in the Realm.For local Realms this only has an impact on change listeners which will not report changes to those fields that was not written.
For synchronized Realms this also impacts the server, which will see improved performance as there is less changes to upload and merge into the server Realm.
It also impact how the server merges changes from different devices. Realm uses a last-write-wins approach when merging individual fields in an object, so if a field is not written it will be considered "older" than other fields modified.
- Server starts out with (Field A = 1, Field B = 1)
- Device 1 writes (Field A = 2, Field B = 2).
- Device 2 writes (Field A = 3, Field B = 1) but ignores (Field B = 1), because that is the value in the Realm file at this point.
- Device 1 uploads its changes to the server making the server (Field A = 2, Field B = 2). Then Device 2 uploads its changes. Due to last-write-wins, the server version now becomes (Field A = 3, Field B = 2).
This is normally the desired behaviour as the final object is the merged result of the latest changes from both devices, however if all the fields in an object are considered an atomic unit, then this flag should not be set as it will ensure that all fields are set and thus have the same "age" when data are sent to the server.