io sono sempre un'eccezione dicendo:Spring 3 NOTE - HibernateDaoSupport - Repository Richiede Sessione di fabbrica
java.lang.IllegalArgumentException: 'sessionFactory' o 'hibernateTemplate' è necessario
Quando cercando di utilizzare l'annotazione @Repository
su una classe HibernateDaoSupport. Il messaggio di errore è semplice, per creare il Repository è necessario un sessionFactory. Tuttavia, ho definito una fabbrica di sessione nel mio 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>
, quindi non sono sicuro di come dare il repository della SessionFactory che richiede mentre è la creazione è di annotazione guidato fagioli, ho tentato di fare quanto segue:
@Autowired
protected HibernateTemplate createHibernateTemplate(SessionFactory sessionFactory) {
return super.createHibernateTemplate(sessionFactory);
}
Ma questo non risolve il problema, probabilmente perché il repository ha bisogno che la proprietà, mentre un'istanza, non solo durante l'esecuzione di un'azione. Sfortunatamente, non so come aggirare questo problema perché non ci sono costruttori o metodi di inizializzazione da sovrascrivere con un'annotazione @Autowired.
Ho controllato che il bean sessionFactory sia stato creato e possa essere avviato automaticamente, e che va bene.
Potresti non voler più utilizzare Hibernatetemplate poiché non offre molti vantaggi http://blog.springsource.org/2007/06/26/so-should-you-still-use-springs-hibernatetemplate-andor- jpatemplate/ – vsingh