枚举类 AssociatedSaveMode

java.lang.Object
java.lang.Enum<AssociatedSaveMode>
org.babyfish.jimmer.sql.ast.mutation.AssociatedSaveMode
所有已实现的接口:
Serializable, Comparable<AssociatedSaveMode>, Constable

public enum AssociatedSaveMode extends Enum<AssociatedSaveMode>
If the current entity object has associated objects, and these associated objects have properties beyond just an id, then these associated objects will also be automatically saved.

The associations of an entity object can be divided into two types:

  • Associations based on foreign keys. These associated objects are saved before the current object.
  • Associations not based on foreign keys ( such as associations based on intermediate tables, one-to-many associations). These associated objects are saved after the current object.
This enumeration specifies how to cascade save the second type of associations.
  • 枚举常量详细资料

    • REPLACE

      public static final AssociatedSaveMode REPLACE
      On the basis of MERGE, perform dissociation processing for associated objects that are no longer needed by the current entity.

      Note that this mode requires the associated object to have either an Id or Key properties otherwise an error will be reported.

    • MERGE

      public static final AssociatedSaveMode MERGE
      If the associated object exists, update it; otherwise, insert it.

      Note that this mode requires the associated object to have either an Id or Key properties otherwise an error will be reported.

    • APPEND

      public static final AssociatedSaveMode APPEND
      Unconditionally insert the associated object. If the associated object already exists, repeated insertion will result in an error.
    • VIOLENTLY_REPLACE

      public static final AssociatedSaveMode VIOLENTLY_REPLACE
      It functions the same as REPLACE, but has lower usage requirements and lower performance.

      REPLACE uses the Id or Key properties of the associated object to cleverly compare the data structure in the database with the data structure that the user is trying to save, finding the differences between the two. It's similar to the `virtual DOM diff` in React in the web domain.

      The operation method is very simple, first clearing all old associated objects, then reinserting new associated objects. The performance is not as good as REPLACE and may even cause event storms when using triggers. However, it can accept associated objects that have neither Id nor Key.

      Unless you really need to accept associated objects that have neither Id nor Key, please do NOT use this mode.

  • 方法详细资料

    • values

      public static AssociatedSaveMode[] values()
      返回包含该枚举类的常量的数组, 顺序与声明这些常量的顺序相同
      返回:
      包含该枚举类的常量的数组,顺序与声明这些常量的顺序相同
    • valueOf

      public static AssociatedSaveMode valueOf(String name)
      返回带有指定名称的该类的枚举常量。 字符串必须与用于声明该类的枚举常量的 标识符完全匹配。(不允许有多余 的空格字符。)
      参数:
      name - 要返回的枚举常量的名称。
      返回:
      返回带有指定名称的枚举常量
      抛出:
      IllegalArgumentException - 如果该枚举类没有带有指定名称的常量
      NullPointerException - 如果参数为空值