Me estoy haciendo una excepción diciendo:Spring 3 Anotaciones - HibernateDaoSupport - Repositorio Requiere Sesión fábrica
java.lang.IllegalArgumentException: 'sessionFactory' o 'HibernateTemplate' se requiere
Cuando tratando de usar la anotación @Repository
en una clase HibernateDaoSupport. El mensaje de error es sencillo, para crear el Repositorio necesita una sessionFactory. Sin embargo, he definido una fábrica de sesiones en mi XML:
<!-- Hibernate -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dashDataSource" />
<property name="annotatedClasses">
<list>
<value>com.mycomp.myapp.Category</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
</props>
</property>
</bean>
así que no estoy seguro de cómo dar el repositorio de la SessionFactory que requiere mientras se está creando es habas de anotación impulsada, he tratado de hacer lo siguiente:
@Autowired
protected HibernateTemplate createHibernateTemplate(SessionFactory sessionFactory) {
return super.createHibernateTemplate(sessionFactory);
}
Pero esto no resuelve el problema, probablemente porque el repositorio necesita que la propiedad al crear la instancia, no sólo cuando se realiza una acción. Lamentablemente, no sé cómo evitar este problema porque no hay constructores ni métodos de inicialización que anular con una @Autowired annotation.
Comprobé para asegurarme de que el bean sessionFactory se está creando y puede ser Autowired, y eso está bien.
Puede que no desee utilizar Hibernatetemplate ya que no ofrece muchos beneficios http://blog.springsource.org/2007/06/26/so-should-you-still-use-springs-hibernatetemplate-andor- jpatemplate/ – vsingh