ich eine Ausnahme bin immer sagen:Frühling 3 Anmerkungen - HibernateDaoSupport - Repository Benötigt Session Werks
java.lang.IllegalArgumentException: 'session' oder 'HibernateTemplate' erforderlich ist
Wenn Versuchen Sie, die @Repository
Annotation in einer HibernateDaoSupport-Klasse zu verwenden. Die Fehlermeldung ist einfach, um das Repository zu erstellen, benötigt es eine sessionFactory. Allerdings habe ich eine Sitzung Fabrik in meinem XML definiert:
<!-- 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>
Also ich bin nicht sicher, wie das Repository die Session geben, dass es erfordert, während sie es Annotation Driven Beans ist die Schaffung, ich versucht, die folgendes zu tun:
@Autowired
protected HibernateTemplate createHibernateTemplate(SessionFactory sessionFactory) {
return super.createHibernateTemplate(sessionFactory);
}
Aber das löst nicht das Problem, wahrscheinlich weil das Repository dieser Eigenschaft muss während der Instanziierung, nicht nur, wenn eine Aktion auszuführen. Leider kann ich dieses Problem nicht umgehen, da es keine Konstruktoren oder Initialisierungsmethoden gibt, die mit einer @Autowired-Annotation überschrieben werden können.
Ich überprüft, um sicherzustellen, dass die SessionFactory-Bean erstellt wird und kann Autowired werden, und das ist in Ordnung.
Sie möchten HibernateTemplate nicht mehr verwenden, da es nicht viel Nutzen bietet http://blog.springsource.org/2007/06/26/so-should-you-still-use-springs-hibernatetemplate-andor- jpatemplate/ – vsingh