Docs 菜单
Docs 主页
/ /
Atlas Device SDKs
/ / /

枚举 ImportFlag

在此页面上

  • io.realm
  • 枚举常量摘要
  • 方法摘要
  • 继承方法
  • 枚举常量详细信息
  • CHECK_SAME_VALUES_BEFORE_SET
  • 方法详细信息
  • 的值
  • values
java.lang.Object
io.realm.ImportFlag

此类描述了在保存整个对象时如何将数据保存到 Realm 中。

提示

另请参阅:

枚举常量和描述

CHECK_SAME_VALUES_BEFORE_SET

启用此标志后,如果字段包含的值与 Realm 中已存在的值相同,则不会将其写入 Realm 文件。

修饰符和类型
方法和说明
public static ImportFlag
public static ImportFlag
  • 从类 java.lang.Object 继承的方法 :getClass ,hashCode ,equals ,clone ,toString ,notify ,notifyAll ,wait ,wait ,wait ,finalize

  • 从类 java.lang.Enum 继承的方法 :nameordinaltoStringequalshashCodeclonecompareTogetDeclaringClassvalueOffinalize

public static final ImportFlag

启用此标志后,如果字段包含的值与 Realm 中已存在的值相同,则不会将其写入 Realm 文件。对于本地 Realm,这仅对变更监听器有影响,监听器不会报告对未写入。

对于同步的 Realm,这也会影响服务器,因为需要上传和合并到服务器 Realm 中的更改更少,因此服务器的性能将得到提高。

它还会影响服务器合并来自不同设备的更改的方式。 Realm 在合并对象中的各个字段时采用最后写入优先的方法,因此,如果某个字段未被写入,则该字段将被视为比其他已修改字段“更旧”。

例如:

  1. 服务器开始时为(字段 A = 1,字段 B = 1)

  2. 设备 1 写入(字段 A = 2,字段 B = 2)。

  3. 设备 2 写入(字段 A = 3,字段 B = 1)但忽略(字段 B = 1),因为这是此时 Realm 文件中的值。

  4. 设备 1 将其更改上传到服务器,从而形成服务器(字段 A = 2,字段 B = 2)。 然后,设备 2 上传其更改。 由于 last-write-wins,服务器版本现在变为(字段 A = 3,字段 B = 2)。

这通常是所需的行为,因为最终对象是两个设备最新更改的合并结果,但是,如果对象中的所有字段都被视为原子单元,则不应设置此标志,因为它将确保所有字段已设置,因此在将数据发送到服务器时具有相同的“年龄”。

public static ImportFlag valueOf (
String name
)
public static ImportFlag values ()

后退

FrozenPendingRow