Class HibernateDaoSupport
- All Implemented Interfaces:
InitializingBean
Requires a SessionFactory
to be set, providing a
HibernateTemplate
based on it to
subclasses through the getHibernateTemplate()
method.
Can alternatively be initialized directly with a HibernateTemplate,
in order to reuse the latter's settings such as the SessionFactory,
exception translator, flush mode, etc.
This class will create its own HibernateTemplate instance if a SessionFactory
is passed in. The "allowCreate" flag on that HibernateTemplate will be "true"
by default. A custom HibernateTemplate instance can be used through overriding
createHibernateTemplate(org.hibernate.SessionFactory)
.
NOTE: Hibernate access code can also be coded in plain Hibernate style.
Hence, for newly started projects, consider adopting the standard Hibernate
style of coding data access objects instead, based on
SessionFactory.getCurrentSession()
.
This HibernateTemplate primarily exists as a migration helper for Hibernate 3
based data access code, to benefit from bug fixes in Hibernate 5.x.
- Since:
- 4.2
- Author:
- Juergen Hoeller
- See Also:
-
Field Summary
Fields inherited from class org.springframework.dao.support.DaoSupport
logger
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected final void
Abstract subclasses must override this to check their configuration.protected HibernateTemplate
createHibernateTemplate
(SessionFactory sessionFactory) Create a HibernateTemplate for the given SessionFactory.protected final Session
Conveniently obtain the current Hibernate Session.final HibernateTemplate
Return the HibernateTemplate for this DAO, pre-initialized with the SessionFactory or set explicitly.final SessionFactory
Return the Hibernate SessionFactory used by this DAO.final void
setHibernateTemplate
(HibernateTemplate hibernateTemplate) Set the HibernateTemplate for this DAO explicitly, as an alternative to specifying a SessionFactory.final void
setSessionFactory
(SessionFactory sessionFactory) Set the Hibernate SessionFactory to be used by this DAO.Methods inherited from class org.springframework.dao.support.DaoSupport
afterPropertiesSet, initDao
-
Constructor Details
-
HibernateDaoSupport
public HibernateDaoSupport()
-
-
Method Details
-
setSessionFactory
Set the Hibernate SessionFactory to be used by this DAO. Will automatically create a HibernateTemplate for the given SessionFactory. -
createHibernateTemplate
Create a HibernateTemplate for the given SessionFactory. Only invoked if populating the DAO with a SessionFactory reference!Can be overridden in subclasses to provide a HibernateTemplate instance with different configuration, or a custom HibernateTemplate subclass.
- Parameters:
sessionFactory
- the Hibernate SessionFactory to create a HibernateTemplate for- Returns:
- the new HibernateTemplate instance
- See Also:
-
getSessionFactory
Return the Hibernate SessionFactory used by this DAO. -
setHibernateTemplate
Set the HibernateTemplate for this DAO explicitly, as an alternative to specifying a SessionFactory. -
getHibernateTemplate
Return the HibernateTemplate for this DAO, pre-initialized with the SessionFactory or set explicitly.Note: The returned HibernateTemplate is a shared instance. You may introspect its configuration, but not modify the configuration (other than from within an
DaoSupport.initDao()
implementation). Consider creating a custom HibernateTemplate instance vianew HibernateTemplate(getSessionFactory())
, in which case you're allowed to customize the settings on the resulting instance. -
checkDaoConfig
protected final void checkDaoConfig()Description copied from class:DaoSupport
Abstract subclasses must override this to check their configuration.Implementors should be marked as
final
if concrete subclasses are not supposed to override this template method themselves.- Specified by:
checkDaoConfig
in classDaoSupport
-
currentSession
Conveniently obtain the current Hibernate Session.- Returns:
- the Hibernate Session
- Throws:
DataAccessResourceFailureException
- if the Session couldn't be created- See Also:
-