枚举 ImportFlag
io.realm
此类描述了在保存整个对象时如何将数据保存到 Realm 中。
枚举常量摘要
枚举常量和描述 |
---|
启用此标志后,如果字段包含的值与 Realm 中已存在的值相同,则不会将其写入 Realm 文件。 |
方法摘要
修饰符和类型 | 方法和说明 |
---|---|
public static ImportFlag | |
public static ImportFlag | values () |
继承方法
从类 java.lang.Object 继承的方法 :
getClass
,hashCode
,equals
,clone
,toString
,notify
,notifyAll
,wait
,wait
,wait
,finalize
从类 java.lang.Enum 继承的方法 :
name
、ordinal
、toString
、equals
、hashCode
、clone
、compareTo
、getDeclaringClass
、valueOf
、finalize
枚举常量详细信息
CHECK_SAME_VALUES_BEFORE_SET
public static final ImportFlag
启用此标志后,如果字段包含的值与 Realm 中已存在的值相同,则不会将其写入 Realm 文件。对于本地 Realm,这仅对变更监听器有影响,监听器不会报告对未写入。
对于同步的 Realm,这也会影响服务器,因为需要上传和合并到服务器 Realm 中的更改更少,因此服务器的性能将得到提高。
它还会影响服务器合并来自不同设备的更改的方式。 Realm 在合并对象中的各个字段时采用最后写入优先的方法,因此,如果某个字段未被写入,则该字段将被视为比其他已修改字段“更旧”。
例如:
服务器开始时为(字段 A = 1,字段 B = 1)
设备 1 写入(字段 A = 2,字段 B = 2)。
设备 2 写入(字段 A = 3,字段 B = 1)但忽略(字段 B = 1),因为这是此时 Realm 文件中的值。
设备 1 将其更改上传到服务器,从而形成服务器(字段 A = 2,字段 B = 2)。 然后,设备 2 上传其更改。 由于 last-write-wins,服务器版本现在变为(字段 A = 3,字段 B = 2)。
这通常是所需的行为,因为最终对象是两个设备最新更改的合并结果,但是,如果对象中的所有字段都被视为原子单元,则不应设置此标志,因为它将确保所有字段已设置,因此在将数据发送到服务器时具有相同的“年龄”。
方法详细信息
的值
values
public static ImportFlag values () |
---|