Interface Lifecycle


public interface Lifecycle
Provides callbacks from the Session to the persistent object. Persistent classes may implement this interface but they are not required to.
  • onSave: called just before the object is saved
  • onUpdate: called just before an object is updated, ie. when Session.update() is called
  • onDelete: called just before an object is deleted onLoad: called just after an object is loaded

onLoad() may be used to initialize transient properties of the object from its persistent state. It may not be used to load dependent objects since the Session interface may not be invoked from inside this method.

A further intended usage of onLoad(), onSave() and onUpdate() is to store a reference to the Session for later use.

If onSave(), onUpdate() or onDelete() return VETO, the operation is silently vetoed. If a CallbackException is thrown, the operation is vetoed and the exception is passed back to the application.

Note that onSave() is called after an identifier is assigned to the object, except when identity column key generation is used.

See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final boolean
    Return value to accept the action (false)
    static final boolean
    Return value to veto the action (true)
  • Method Summary

    Modifier and Type
    Method
    Description
    default boolean
    Called when an entity is deleted.
    default void
    Deprecated.
    default void
    Called after an entity is loaded.
    default boolean
    Called when an entity is saved.
    default boolean
    Called when an entity is passed to Session.update().
  • Field Details

    • VETO

      static final boolean VETO
      Return value to veto the action (true)
      See Also:
    • NO_VETO

      static final boolean NO_VETO
      Return value to accept the action (false)
      See Also:
  • Method Details

    • onSave

      default boolean onSave(Session s) throws CallbackException
      Called when an entity is saved.
      Parameters:
      s - the session
      Returns:
      true to veto save
      Throws:
      CallbackException - Indicates a problem happened during callback
    • onUpdate

      default boolean onUpdate(Session s) throws CallbackException
      Called when an entity is passed to Session.update(). This method is not called every time the object's state is persisted during a flush.
      Parameters:
      s - the session
      Returns:
      true to veto update
      Throws:
      CallbackException - Indicates a problem happened during callback
    • onDelete

      default boolean onDelete(Session s) throws CallbackException
      Called when an entity is deleted.
      Parameters:
      s - the session
      Returns:
      true to veto delete
      Throws:
      CallbackException - Indicates a problem happened during callback
    • onLoad

      default void onLoad(Session s, Object id)
      Called after an entity is loaded. It is illegal to access the Session from inside this method. However, the object may keep a reference to the session for later use.
      Parameters:
      s - the session
      id - the identifier
    • onLoad

      @Deprecated(since="6.0") default void onLoad(Session s, Serializable id)
      Deprecated.
      Called after an entity is loaded. It is illegal to access the Session from inside this method. However, the object may keep a reference to the session for later use.
      Parameters:
      s - the session
      id - the identifier