Package org.hibernate.annotations
Annotation Type OnDelete
-
@Target({METHOD,FIELD,TYPE}) @Retention(RUNTIME) public @interface OnDelete
Specifies anon deleteaction for a foreign key constraint. The most common usage is@OnDelete(action = CASCADE).@ManyToOne @OnDelete(action = CASCADE) Parent parent;
Note that this results in anon delete cascadeclause in the DDL definition of the foreign key. It's completely different toCascadeType.REMOVE.In fact,
@OnDeletemay be combined withcascade=REMOVE.@ManyToOne(cascade = REMOVE) @OnDelete(action = CASCADE) Parent parent;
- If
@OnDelete(action = CASCADE)is used in conjunction withcascade=REMOVE, then associated entities are fetched from the database, marked deleted in the persistence context, and evicted from the second-level cache. - If
@OnDelete(action = CASCADE)is used on its own, withoutcascade=REMOVE, then associated entities are not fetched from the database, are not marked deleted in the persistence context, and are not automatically evicted from the second-level cache.
Like database triggers,
on deleteactions can cause state held in memory to lose synchronization with the database. - If
-
-
Required Element Summary
Required Elements Modifier and Type Required Element Description OnDeleteActionactionThe action to taken by the database when deletion of a row would cause the constraint to be violated.
-
-
-
Element Detail
-
action
OnDeleteAction action
The action to taken by the database when deletion of a row would cause the constraint to be violated.
-
-