org.hibernate.classic
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.

Author:
Gavin King
See Also:
CallbackException

Field Summary
static boolean NO_VETO
          Return value to accept the action (false)
static boolean VETO
          Return value to veto the action (true)
 
Method Summary
 boolean onDelete(Session s)
          Called when an entity is deleted.
 void onLoad(Session s, Serializable id)
          Called after an entity is loaded.
 boolean onSave(Session s)
          Called when an entity is saved.
 boolean onUpdate(Session s)
          Called when an entity is passed to Session.update().
 

Field Detail

VETO

static final boolean VETO
Return value to veto the action (true)

See Also:
Constant Field Values

NO_VETO

static final boolean NO_VETO
Return value to accept the action (false)

See Also:
Constant Field Values
Method Detail

onSave

boolean onSave(Session s)
               throws CallbackException
Called when an entity is saved.

Parameters:
s - the session
Returns:
true to veto save
Throws:
CallbackException

onUpdate

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

onDelete

boolean onDelete(Session s)
                 throws CallbackException
Called when an entity is deleted.

Parameters:
s - the session
Returns:
true to veto delete
Throws:
CallbackException

onLoad

void onLoad(Session s,
            Serializable 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