Annotation Type SoftDelete


  • @Target({PACKAGE,TYPE,FIELD,METHOD,ANNOTATION_TYPE})
    @Retention(RUNTIME)
    @Documented
    @Incubating
    public @interface SoftDelete
    Describes a soft-delete indicator mapping.

    Soft deletes handle "deletions" from a database table by setting a column in the table to indicate deletion.

    May be defined at various levels

    • PACKAGE, where it applies to all mappings defined in the package, unless defined more specifically.
    • TYPE, where it applies to an entity hierarchy. The annotation must be defined on the root of the hierarchy and affects to the hierarchy as a whole. The soft-delete column is assumed to be on the hierarchy's root table.
    • FIELD / METHOD, where it applies to the rows of an ElementCollection or ManyToMany table.
    • ANNOTATION_TYPE on another annotation defined according to the previous targets.
    Since:
    6.4
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      String columnName
      (Optional) The name of the column.
      Class<? extends AttributeConverter<Boolean,​?>> converter
      (Optional) Conversion to apply to determine the appropriate value to store in the database.
      SoftDeleteType strategy
      The strategy to use for storing/reading values to/from the database.
      • strategy

        SoftDeleteType strategy
        The strategy to use for storing/reading values to/from the database.

        The strategy also affects the default column name.

        Default:
        org.hibernate.annotations.SoftDeleteType.DELETED
      • converter

        Class<? extends AttributeConverter<Boolean,​?>> converter
        (Optional) Conversion to apply to determine the appropriate value to store in the database. The "domain representation" can be:
        true
        Indicates that the row is considered deleted
        false
        Indicates that the row is considered NOT deleted

        By default, values are stored as booleans in the database according to the dialect and settings

        API Note:
        The converter should never return null
        Default:
        org.hibernate.annotations.SoftDelete.UnspecifiedConversion.class