Annotation Interface SQLDelete


@Target({TYPE,FIELD,METHOD}) @Retention(RUNTIME) @Repeatable(SQLDeletes.class) public @interface SQLDelete
Specifies a custom SQL DML statement to be used in place of the default SQL generated by Hibernate when an entity or collection row is deleted from the database.

The given SQL statement must have exactly the number of JDBC ? parameters that Hibernate expects, in the exact order Hibernate expects. The primary key columns come before the version column if the entity is versioned.

If an entity has secondary tables, it may have a @SQLDelete annotation for each secondary table. The table() member must specify the name of the secondary table.

  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    Procedure name or SQL DELETE statement.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    boolean
    Is the statement callable (aka a CallableStatement)?
    The name of the table affected by the delete statement.
    Class<? extends Expectation>
    An Expectation class used to verify that the operation was successful.
  • Element Details

    • sql

      String sql
      Procedure name or SQL DELETE statement.
    • callable

      boolean callable
      Is the statement callable (aka a CallableStatement)?
      Default:
      false
    • verify

      Class<? extends Expectation> verify
      An Expectation class used to verify that the operation was successful.
      See Also:
      Default:
      org.hibernate.jdbc.Expectation.class
    • table

      String table
      The name of the table affected by the delete statement. Required when the statement affects a secondary table of an entity. Not required for collections nor when the insert statement affects the primary table of an entity.
      Returns:
      the name of the secondary table
      Since:
      6.2
      Default:
      ""