| org.hibernate.Interceptor
All known Subclasses: org.hibernate.EmptyInterceptor,
Interceptor | public interface Interceptor (Code) | | Allows user code to inspect and/or change property values.
Inspection occurs before property values are written and after they are read
from the database.
There might be a single instance of Interceptor for a SessionFactory, or a new instance
might be specified for each Session. Whichever approach is used, the interceptor must be
serializable if the Session is to be serializable. This means that SessionFactory-scoped
interceptors should implement readResolve().
The Session may not be invoked from a callback (nor may a callback cause a collection or proxy to
be lazily initialized).
Instead of implementing this interface directly, it is usually better to extend EmptyInterceptor
and override only the callback methods of interest.
See Also: SessionFactory.openSession(Interceptor) See Also: org.hibernate.cfg.Configuration.setInterceptor(Interceptor) See Also: EmptyInterceptor author: Gavin King |
Method Summary | |
public void | afterTransactionBegin(Transaction tx) Called when a Hibernate transaction is begun via the Hibernate Transaction
API. | public void | afterTransactionCompletion(Transaction tx) Called after a transaction is committed or rolled back. | public void | beforeTransactionCompletion(Transaction tx) Called before a transaction is committed (but not before rollback). | public int[] | findDirty(Object entity, Serializable id, Object[] currentState, Object[] previousState, String[] propertyNames, Type[] types) Called from flush(). | public Object | getEntity(String entityName, Serializable id) | public String | getEntityName(Object object) | public Object | instantiate(String entityName, EntityMode entityMode, Serializable id) Instantiate the entity class. | public Boolean | isTransient(Object entity) Called to distinguish between transient and detached entities. | public void | onCollectionRecreate(Object collection, Serializable key) Called before a collection is (re)created. | public void | onCollectionRemove(Object collection, Serializable key) Called before a collection is deleted. | public void | onCollectionUpdate(Object collection, Serializable key) Called before a collection is updated. | public void | onDelete(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) Called before an object is deleted. | public boolean | onFlushDirty(Object entity, Serializable id, Object[] currentState, Object[] previousState, String[] propertyNames, Type[] types) Called when an object is detected to be dirty, during a flush. | public boolean | onLoad(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) Called just before an object is initialized. | public String | onPrepareStatement(String sql) Called when sql string is being prepared. | public boolean | onSave(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) Called before an object is saved. | public void | postFlush(Iterator entities) Called after a flush that actually ends in execution of the SQL statements required to synchronize
in-memory state with the database. | public void | preFlush(Iterator entities) |
afterTransactionBegin | public void afterTransactionBegin(Transaction tx)(Code) | | 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)(Code) | | Called after a transaction is committed or rolled back.
|
beforeTransactionCompletion | public void beforeTransactionCompletion(Transaction tx)(Code) | | 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)(Code) | | 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
Parameters: entity - a persistent entity array of dirty property indices or null to choose default behaviour |
getEntityName | public String getEntityName(Object object) throws CallbackException(Code) | | Get the entity name for a persistent or transient instance
Parameters: object - an entity instance the name of the entity |
instantiate | public Object instantiate(String entityName, EntityMode entityMode, Serializable id) throws CallbackException(Code) | | 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.
Parameters: entityName - the name of the entity Parameters: entityMode - The type of entity instance to be returned. Parameters: id - the identifier of the new instance an instance of the class, or null to choose default behaviour |
isTransient | public Boolean isTransient(Object entity)(Code) | | 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
Parameters: entity - a transient or detached entity Boolean or null to choose default behaviour |
onFlushDirty | public boolean onFlushDirty(Object entity, Serializable id, Object[] currentState, Object[] previousState, String[] propertyNames, Type[] types) throws CallbackException(Code) | | 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(Code) | | 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)(Code) | | Called when sql string is being prepared.
Parameters: sql - sql to be prepared original or modified sql |
onSave | public boolean onSave(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) throws CallbackException(Code) | | 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(Code) | | Called after a flush that actually ends in execution of the SQL statements required to synchronize
in-memory state with the database.
|
|
|