Convenient super class for Hibernate-based data access objects.
Requires a {@link org.hibernate.SessionFactory} to be set, providing a{@link org.springframework.orm.hibernate4.HibernateTemplate} based on it tosubclasses through the {@link #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 {@link #createHibernateTemplate}.
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 {@link org.hibernate.SessionFactory#getCurrentSession()}. This HibernateTemplate primarily exists as a migration helper for Hibernate 3 based data access code, to benefit from bug fixes in Hibernate 4.x.
@author Juergen Hoeller
@since 4.0.1
@see #setSessionFactory
@see #getHibernateTemplate
@see org.springframework.orm.hibernate4.HibernateTemplate