在最近的项目中使用 想在通用dao中使用HibernateDaoSupport
却发现报 'sessionFactory' or 'hibernateTemplate' is required;
在HibernateDaoSupport 源码中
处理sessionFactory
public final void setSessionFactory(SessionFactory sessionFactory) {
if (this.hibernateTemplate == null || sessionFactory != this.hibernateTemplate.getSessionFactory()) {
this.hibernateTemplate = createHibernateTemplate(sessionFactory);
}
}
不能被继承 也就无法通过正常方式赋值。
所以在通用的dao中加上
@Autowired
public void setSessionFactory_(SessionFactory sessionFactory){
super.setSessionFactory(sessionFactory);
}
然后配置文件中
<bean id="genericDAO" class="com.nong.mvc.framework.code.hibernate.dao.GenericDAO">
<property name="sessionFactory">
<ref bean="accessSessionFactory"/>
</property>
</bean>
测试后没有问题。