Class CascadeStyle

java.lang.Object
org.hibernate.engine.CascadeStyle
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
CascadeStyle.MultipleCascadeStyle

public abstract class CascadeStyle extends Object implements Serializable
A contract for defining the aspects of cascading various persistence actions.
See Also:
  • Field Details

    • ALL_DELETE_ORPHAN

      public static final CascadeStyle ALL_DELETE_ORPHAN
      save / delete / update / evict / lock / replicate / merge / persist + delete orphans
    • ALL

      public static final CascadeStyle ALL
      save / delete / update / evict / lock / replicate / merge / persist
    • UPDATE

      public static final CascadeStyle UPDATE
      save / update
    • LOCK

      public static final CascadeStyle LOCK
      lock
    • REFRESH

      public static final CascadeStyle REFRESH
      refresh
    • EVICT

      public static final CascadeStyle EVICT
      evict
    • REPLICATE

      public static final CascadeStyle REPLICATE
      replicate
    • MERGE

      public static final CascadeStyle MERGE
      merge
    • PERSIST

      public static final CascadeStyle PERSIST
      create
    • DELETE

      public static final CascadeStyle DELETE
      delete
    • DELETE_ORPHAN

      public static final CascadeStyle DELETE_ORPHAN
      delete + delete orphans
    • NONE

      public static final CascadeStyle NONE
      no cascades
  • Method Details

    • doCascade

      public abstract boolean doCascade(CascadingAction action)
      For this style, should the given action be cascaded?
      Parameters:
      action - The action to be checked for cascade-ability.
      Returns:
      True if the action should be cascaded under this style; false otherwise.
    • reallyDoCascade

      public boolean reallyDoCascade(CascadingAction action)
      Probably more aptly named something like doCascadeToCollectionElements(); it is however used from both the collection and to-one logic branches...

      For this style, should the given action really be cascaded? The default implementation is simply to return doCascade(org.hibernate.engine.CascadingAction); for certain styles (currently only delete-orphan), however, we need to be able to control this seperately.

      Parameters:
      action - The action to be checked for cascade-ability.
      Returns:
      True if the action should be really cascaded under this style; false otherwise.
    • hasOrphanDelete

      public boolean hasOrphanDelete()
      Do we need to delete orphaned collection elements?
      Returns:
      True if this style need to account for orphan delete operations; false othwerwise.
    • getCascadeStyle

      public static CascadeStyle getCascadeStyle(String cascade)
      Factory method for obtaining named cascade styles
      Parameters:
      cascade - The named cascade style name.
      Returns:
      The appropriate CascadeStyle