我正在一個異常說:彈簧3註解 - 的HibernateDaoSupport - 庫要求會話廠
java.lang.IllegalArgumentException異常: 'SessionFactory的' 或 '的HibernateTemplate' 需要
當試圖在HibernateDaoSupport類上使用@Repository
註釋。錯誤消息很簡單,爲了創建它需要一個sessionFactory的存儲庫。不過,我已經在我的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>
所以我不知道如何給庫的SessionFactory的是它,而它是創造它的註釋驅動Bean需要,我試圖做到以下幾點:
@Autowired
protected HibernateTemplate createHibernateTemplate(SessionFactory sessionFactory) {
return super.createHibernateTemplate(sessionFactory);
}
但由於庫需要該屬性在實例,執行操作不只是當這不能解決問題,有可能。不幸的是,我不知道如何解決這個問題,因爲沒有構造函數或初始化方法可以用@Autowired註解來覆蓋。
我檢查確保sessionFactory bean正在創建,並且可以Autowired,這很好。
您可能不想再使用Hibernatetemplate,因爲它不會提供太多好處http://blog.springsource.org/2007/06/26/so-should-you-still-use-springs-hibernatetemplate-andor- jpatemplate/ – vsingh 2011-11-17 18:16:45