Tôi nhận được một ngoại lệ nói:mùa xuân 3 Chú thích - HibernateDaoSupport - Repository Yêu cầu phiên Factory
java.lang.IllegalArgumentException: 'sessionfactory' hoặc 'hibernateTemplate' được yêu cầu
Khi cố gắng sử dụng chú thích @Repository
trên lớp HibernateDaoSupport. Thông báo lỗi là đơn giản, để tạo ra các Repository nó cần một sessionFactory. Tuy nhiên, tôi đã xác định một nhà máy phiên trong XML của tôi:
<!-- 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>
Vì vậy, tôi không chắc chắn làm thế nào để cung cấp cho các kho SessionFactory rằng nó đòi hỏi trong khi nó tạo ra nó là chú thích lái xe đậu, tôi đã cố gắng làm như sau:
@Autowired
protected HibernateTemplate createHibernateTemplate(SessionFactory sessionFactory) {
return super.createHibernateTemplate(sessionFactory);
}
Nhưng điều này không giải quyết được sự cố, có thể do kho lưu trữ cần thuộc tính đó trong khi khởi tạo, không chỉ khi thực hiện hành động. Thật không may, tôi không biết cách giải quyết vấn đề này bởi vì không có phương thức khởi tạo hoặc phương thức khởi tạo nào để ghi đè bằng chú thích @Autowired.
Tôi đã kiểm tra để đảm bảo rằng bean sessionFactory đang được tạo và có thể được Tự động, và điều đó là tốt.
Bạn có thể không muốn sử dụng Hibernatetemplate nữa vì nó không mang lại nhiều lợi ích http://blog.springsource.org/2007/06/26/so-should-you-still-use-springs-hibernatetemplate-andor- jpatemplate/ – vsingh