| java.lang.Object org.springframework.orm.hibernate3.HibernateAccessor
All known Subclasses: org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor, org.springframework.orm.hibernate3.HibernateTemplate, org.springframework.orm.hibernate3.HibernateInterceptor,
Field Summary | |
final public static int | FLUSH_ALWAYS Flushing before every query statement is rarely necessary. | final public static int | FLUSH_AUTO Automatic flushing is the default mode for a Hibernate Session. | final public static int | FLUSH_COMMIT Flushing at commit only is intended for units of work where no
intermediate flushing is desired, not even for find operations
that might involve already modified instances.
In case of an existing Session, FLUSH_COMMIT will turn the flush mode
to COMMIT for the scope of the current operation, resetting the previous
flush mode afterwards. | final public static int | FLUSH_EAGER Eager flushing leads to immediate synchronization with the database,
even if in a transaction. | final public static int | FLUSH_NEVER Never flush is a good strategy for read-only units of work. | final protected Log | logger |
Method Summary | |
public void | afterPropertiesSet() | protected FlushMode | applyFlushMode(Session session, boolean existingTransaction) Apply the flush mode that's been specified for this accessor
to the given Session. | public DataAccessException | convertHibernateAccessException(HibernateException ex) Convert the given HibernateException to an appropriate exception
from the org.springframework.dao hierarchy. | protected DataAccessException | convertJdbcAccessException(JDBCException ex, SQLExceptionTranslator translator) Convert the given Hibernate JDBCException to an appropriate exception
from the org.springframework.dao hierarchy, using the
given SQLExceptionTranslator. | protected DataAccessException | convertJdbcAccessException(SQLException ex) Convert the given SQLException to an appropriate exception from the
org.springframework.dao hierarchy. | protected void | disableFilters(Session session) Disable the specified filters on the given Session. | protected void | enableFilters(Session session) Enable the specified filters on the given Session. | protected void | flushIfNecessary(Session session, boolean existingTransaction) Flush the given Hibernate Session if necessary. | protected synchronized SQLExceptionTranslator | getDefaultJdbcExceptionTranslator() Obtain a default SQLExceptionTranslator, lazily creating it if necessary. | public Interceptor | getEntityInterceptor() Return the current Hibernate entity interceptor, or null if none. | public String[] | getFilterNames() Return the names of Hibernate filters to be activated, if any. | public int | getFlushMode() Return if a flush should be forced after executing the callback code. | public SQLExceptionTranslator | getJdbcExceptionTranslator() Return the JDBC exception translator for this instance, if any. | public SessionFactory | getSessionFactory() Return the Hibernate SessionFactory that should be used to create
Hibernate Sessions. | public void | setBeanFactory(BeanFactory beanFactory) The bean factory just needs to be known for resolving entity interceptor
bean names. | public void | setEntityInterceptor(Interceptor entityInterceptor) Set a Hibernate entity interceptor that allows to inspect and change
property values before writing to and reading from the database.
Will get applied to any new Session created by this object.
Such an interceptor can either be set at the SessionFactory level,
i.e. | public void | setEntityInterceptorBeanName(String entityInterceptorBeanName) Set the bean name of a Hibernate entity interceptor that allows to inspect
and change property values before writing to and reading from the database.
Will get applied to any new Session created by this transaction manager.
Requires the bean factory to be known, to be able to resolve the bean
name to an interceptor instance on session creation. | public void | setFilterName(String filter) Set the name of a Hibernate filter to be activated for all
Sessions that this accessor works with. | public void | setFilterNames(String[] filterNames) Set one or more names of Hibernate filters to be activated for all
Sessions that this accessor works with. | public void | setFlushMode(int flushMode) Set the flush behavior to one of the constants in this class. | public void | setFlushModeName(String constantName) Set the flush behavior by the name of the respective constant
in this class, e.g. | public void | setJdbcExceptionTranslator(SQLExceptionTranslator jdbcExceptionTranslator) Set the JDBC exception translator for this instance. | public void | setSessionFactory(SessionFactory sessionFactory) Set the Hibernate SessionFactory that should be used to create
Hibernate Sessions. |
FLUSH_ALWAYS | final public static int FLUSH_ALWAYS(Code) | | Flushing before every query statement is rarely necessary.
It is only available for special needs.
In case of an existing Session, FLUSH_ALWAYS will turn the flush mode
to ALWAYS for the scope of the current operation, resetting the previous
flush mode afterwards.
See Also: HibernateAccessor.setFlushMode |
FLUSH_AUTO | final public static int FLUSH_AUTO(Code) | | Automatic flushing is the default mode for a Hibernate Session.
A session will get flushed on transaction commit, and on certain find
operations that might involve already modified instances, but not
after each unit of work like with eager flushing.
In case of an existing Session, FLUSH_AUTO will participate in the
existing flush mode, not modifying it for the current operation.
This in particular means that this setting will not modify an existing
flush mode NEVER, in contrast to FLUSH_EAGER.
See Also: HibernateAccessor.setFlushMode |
FLUSH_COMMIT | final public static int FLUSH_COMMIT(Code) | | Flushing at commit only is intended for units of work where no
intermediate flushing is desired, not even for find operations
that might involve already modified instances.
In case of an existing Session, FLUSH_COMMIT will turn the flush mode
to COMMIT for the scope of the current operation, resetting the previous
flush mode afterwards. The only exception is an existing flush mode
NEVER, which will not be modified through this setting.
See Also: HibernateAccessor.setFlushMode |
FLUSH_EAGER | final public static int FLUSH_EAGER(Code) | | Eager flushing leads to immediate synchronization with the database,
even if in a transaction. This causes inconsistencies to show up and throw
a respective exception immediately, and JDBC access code that participates
in the same transaction will see the changes as the database is already
aware of them then. But the drawbacks are:
- additional communication roundtrips with the database, instead of a
single batch at transaction commit;
- the fact that an actual database rollback is needed if the Hibernate
transaction rolls back (due to already submitted SQL statements).
In case of an existing Session, FLUSH_EAGER will turn the flush mode
to AUTO for the scope of the current operation and issue a flush at the
end, resetting the previous flush mode afterwards.
See Also: HibernateAccessor.setFlushMode |
FLUSH_NEVER | final public static int FLUSH_NEVER(Code) | | Never flush is a good strategy for read-only units of work.
Hibernate will not track and look for changes in this case,
avoiding any overhead of modification detection.
In case of an existing Session, FLUSH_NEVER will turn the flush mode
to NEVER for the scope of the current operation, resetting the previous
flush mode afterwards.
See Also: HibernateAccessor.setFlushMode |
logger | final protected Log logger(Code) | | Logger available to subclasses
|
afterPropertiesSet | public void afterPropertiesSet()(Code) | | |
applyFlushMode | protected FlushMode applyFlushMode(Session session, boolean existingTransaction)(Code) | | Apply the flush mode that's been specified for this accessor
to the given Session.
Parameters: session - the current Hibernate Session Parameters: existingTransaction - if executing within an existing transaction the previous flush mode to restore after the operation,or null if none See Also: HibernateAccessor.setFlushMode See Also: org.hibernate.Session.setFlushMode |
convertJdbcAccessException | protected DataAccessException convertJdbcAccessException(JDBCException ex, SQLExceptionTranslator translator)(Code) | | Convert the given Hibernate JDBCException to an appropriate exception
from the org.springframework.dao hierarchy, using the
given SQLExceptionTranslator.
Parameters: ex - Hibernate JDBCException that occured Parameters: translator - the SQLExceptionTranslator to use a corresponding DataAccessException |
convertJdbcAccessException | protected DataAccessException convertJdbcAccessException(SQLException ex)(Code) | | Convert the given SQLException to an appropriate exception from the
org.springframework.dao hierarchy. Can be overridden in subclasses.
Note that a direct SQLException can just occur when callback code
performs direct JDBC access via Session.connection() .
Parameters: ex - the SQLException the corresponding DataAccessException instance See Also: HibernateAccessor.setJdbcExceptionTranslator See Also: org.hibernate.Session.connection |
disableFilters | protected void disableFilters(Session session)(Code) | | Disable the specified filters on the given Session.
Parameters: session - the current Hibernate Session See Also: HibernateAccessor.setFilterNames See Also: org.hibernate.Session.disableFilter(String) |
enableFilters | protected void enableFilters(Session session)(Code) | | Enable the specified filters on the given Session.
Parameters: session - the current Hibernate Session See Also: HibernateAccessor.setFilterNames See Also: org.hibernate.Session.enableFilter(String) |
flushIfNecessary | protected void flushIfNecessary(Session session, boolean existingTransaction) throws HibernateException(Code) | | Flush the given Hibernate Session if necessary.
Parameters: session - the current Hibernate Session Parameters: existingTransaction - if executing within an existing transaction throws: HibernateException - in case of Hibernate flushing errors |
getFilterNames | public String[] getFilterNames()(Code) | | Return the names of Hibernate filters to be activated, if any.
|
getFlushMode | public int getFlushMode()(Code) | | Return if a flush should be forced after executing the callback code.
|
getJdbcExceptionTranslator | public SQLExceptionTranslator getJdbcExceptionTranslator()(Code) | | Return the JDBC exception translator for this instance, if any.
|
getSessionFactory | public SessionFactory getSessionFactory()(Code) | | Return the Hibernate SessionFactory that should be used to create
Hibernate Sessions.
|
setEntityInterceptor | public void setEntityInterceptor(Interceptor entityInterceptor)(Code) | | Set a Hibernate entity interceptor that allows to inspect and change
property values before writing to and reading from the database.
Will get applied to any new Session created by this object.
Such an interceptor can either be set at the SessionFactory level,
i.e. on LocalSessionFactoryBean, or at the Session level, i.e. on
HibernateTemplate, HibernateInterceptor, and HibernateTransactionManager.
It's preferable to set it on LocalSessionFactoryBean or HibernateTransactionManager
to avoid repeated configuration and guarantee consistent behavior in transactions.
See Also: HibernateAccessor.setEntityInterceptorBeanName See Also: LocalSessionFactoryBean.setEntityInterceptor See Also: HibernateTransactionManager.setEntityInterceptor |
setEntityInterceptorBeanName | public void setEntityInterceptorBeanName(String entityInterceptorBeanName)(Code) | | Set the bean name of a Hibernate entity interceptor that allows to inspect
and change property values before writing to and reading from the database.
Will get applied to any new Session created by this transaction manager.
Requires the bean factory to be known, to be able to resolve the bean
name to an interceptor instance on session creation. Typically used for
prototype interceptors, i.e. a new interceptor instance per session.
Can also be used for shared interceptor instances, but it is recommended
to set the interceptor reference directly in such a scenario.
Parameters: entityInterceptorBeanName - the name of the entity interceptor inthe bean factory See Also: HibernateAccessor.setBeanFactory See Also: HibernateAccessor.setEntityInterceptor |
setFilterName | public void setFilterName(String filter)(Code) | | Set the name of a Hibernate filter to be activated for all
Sessions that this accessor works with.
This filter will be enabled at the beginning of each operation
and correspondingly disabled at the end of the operation.
This will work for newly opened Sessions as well as for existing
Sessions (for example, within a transaction).
See Also: HibernateAccessor.enableFilters(org.hibernate.Session) See Also: org.hibernate.Session.enableFilter(String) See Also: LocalSessionFactoryBean.setFilterDefinitions |
setFilterNames | public void setFilterNames(String[] filterNames)(Code) | | Set one or more names of Hibernate filters to be activated for all
Sessions that this accessor works with.
Each of those filters will be enabled at the beginning of each
operation and correspondingly disabled at the end of the operation.
This will work for newly opened Sessions as well as for existing
Sessions (for example, within a transaction).
See Also: HibernateAccessor.enableFilters(org.hibernate.Session) See Also: org.hibernate.Session.enableFilter(String) See Also: LocalSessionFactoryBean.setFilterDefinitions |
setSessionFactory | public void setSessionFactory(SessionFactory sessionFactory)(Code) | | Set the Hibernate SessionFactory that should be used to create
Hibernate Sessions.
|
|
|