afterTransactionBegin
public void afterTransactionBegin(Transaction tx)
Called when a Hibernate transaction is begun via the Hibernate Transaction
API. Will not be called if transactions are being controlled via some other
mechanism (CMT, for example).
afterTransactionCompletion
public void afterTransactionCompletion(Transaction tx)
Called after a transaction is committed or rolled back.
beforeTransactionCompletion
public void beforeTransactionCompletion(Transaction tx)
Called before a transaction is committed (but not before rollback).
findDirty
public int[] findDirty(Object entity,
Serializable id,
Object[] currentState,
Object[] previousState,
String[] propertyNames,
Type[] types)
Called from
flush(). The return value determines whether the entity is updated
- an array of property indices - the entity is dirty
- an empty array - the entity is not dirty
- null - use Hibernate's default dirty-checking algorithm
entity
- a persistent entity
- array of dirty property indices or null to choose default behaviour
getEntity
public Object getEntity(String entityName,
Serializable id)
throws CallbackException
Get a fully loaded entity instance that is cached externally
entityName
- the name of the entityid
- the instance identifier
- a fully initialized entity
getEntityName
public String getEntityName(Object object)
throws CallbackException
Get the entity name for a persistent or transient instance
object
- an entity instance
instantiate
public Object instantiate(String entityName,
EntityMode entityMode,
Serializable id)
throws CallbackException
Instantiate the entity class. Return null to indicate that Hibernate should use
the default constructor of the class. The identifier property of the returned instance
should be initialized with the given identifier.
entityName
- the name of the entityentityMode
- The type of entity instance to be returned.id
- the identifier of the new instance
- an instance of the class, or null to choose default behaviour
isTransient
public Boolean isTransient(Object entity)
Called to distinguish between transient and detached entities. The return value determines the
state of the entity with respect to the current session.
- Boolean.TRUE - the entity is transient
- Boolean.FALSE - the entity is detached
- null - Hibernate uses the unsaved-value mapping and other heuristics to
determine if the object is unsaved
entity
- a transient or detached entity
- Boolean or null to choose default behaviour
onCollectionRecreate
public void onCollectionRecreate(Object collection,
Serializable key)
throws CallbackException
Called before a collection is (re)created.
onCollectionRemove
public void onCollectionRemove(Object collection,
Serializable key)
throws CallbackException
Called before a collection is deleted.
onCollectionUpdate
public void onCollectionUpdate(Object collection,
Serializable key)
throws CallbackException
Called before a collection is updated.
onDelete
public void onDelete(Object entity,
Serializable id,
Object[] state,
String[] propertyNames,
Type[] types)
throws CallbackException
Called before an object is deleted. It is not recommended that the interceptor modify the state.
onFlushDirty
public boolean onFlushDirty(Object entity,
Serializable id,
Object[] currentState,
Object[] previousState,
String[] propertyNames,
Type[] types)
throws CallbackException
Called when an object is detected to be dirty, during a flush. The interceptor may modify the detected
currentState, which will be propagated to both the database and the persistent object.
Note that not all flushes end in actual synchronization with the database, in which case the
new currentState will be propagated to the object, but not necessarily (immediately) to
the database. It is strongly recommended that the interceptor not modify the previousState.
- true if the user modified the currentState in any way.
onLoad
public boolean onLoad(Object entity,
Serializable id,
Object[] state,
String[] propertyNames,
Type[] types)
throws CallbackException
Called just before an object is initialized. The interceptor may change the state, which will
be propagated to the persistent object. Note that when this method is called, entity will be
an empty uninitialized instance of the class.
- true if the user modified the state in any way.
onPrepareStatement
public String onPrepareStatement(String sql)
Called when sql string is being prepared.
onSave
public boolean onSave(Object entity,
Serializable id,
Object[] state,
String[] propertyNames,
Type[] types)
throws CallbackException
Called before an object is saved. The interceptor may modify the state, which will be used for
the SQL INSERT and propagated to the persistent object.
- true if the user modified the state in any way.
postFlush
public void postFlush(Iterator entities)
throws CallbackException
Called after a flush that actually ends in execution of the SQL statements required to synchronize
in-memory state with the database.
preFlush
public void preFlush(Iterator entities)
throws CallbackException
Called before a flush