Je reçois une exception en disant:Spring 3 Annotations - HibernateDaoSupport - Dépôt requis session usine
java.lang.IllegalArgumentException: 'sessionFactory' ou 'HibernateTemplate' est nécessaire
Lorsque essayer d'utiliser l'annotation @Repository
sur une classe HibernateDaoSupport. Le message d'erreur est simple, afin de créer le référentiel, il a besoin d'une sessionFactory. Cependant, je l'ai défini une usine de session dans mon 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>
Je ne suis pas sûr de savoir comment donner le dépôt SessionFactory qu'il exige alors qu'il est la création de c'est des haricots conduit d'annotation, je tentai de faire ce qui suit:
@Autowired
protected HibernateTemplate createHibernateTemplate(SessionFactory sessionFactory) {
return super.createHibernateTemplate(sessionFactory);
}
Mais cela ne résout pas le problème, probablement parce que le dépôt a besoin de cette propriété lors de l'instanciation, non seulement lors de l'exécution d'une action. Malheureusement, je ne sais pas comment contourner ce problème car il n'y a pas de constructeur ou de méthode d'initialisation à redéfinir avec une annotation @Autowired.
J'ai vérifié pour m'assurer que le bean sessionFactory est en cours de création et peut être auto-amorcé, et c'est très bien.
Vous ne voudrez plus utiliser Hibernatetemplate car il n'offre pas beaucoup d'avantages http://blog.springsource.org/2007/06/26/so-should-you-still-use-springs-hibernatetemplate-andor- jpatemplate/ – vsingh