'''Option 1''' Example of a Dao or Service object: {{{ @Repository @Transactional public class HibernateClinic implements Clinic { @Autowired private SessionFactory sessionFactory; }}} This configuaration needed: {{{ }}} '''Option 2''' {{{ public class ExampleDao extends HibernateDaoSupport { void saveErikExampleDomain(ErikExampleDomain erikExampleDomain ) { this.getHibernateTemplate().save(erikExampleDomain ); } }}} This configuaration needed: {{{ }}} '''Chosen Option 2'''. This option is chosen because (1) one line less of configuration (2) It is working directly with the sessionFactory instead of a Facade like HibernateTemplate. Working with a template can have advantages. However in case of Hibernate, Spring has little to add because Hibernate is a very mature package. (3) SessionFactory is directly available. This might be necessary in cases of more advanced use of Hibernate.