在最近的项目中使用 想在通用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>
测试后没有问题。
本文介绍了解决在通用DAO中使用HibernateDaoSupport时遇到的'sessionFactory'或'hibernateTemplate'缺失的问题。通过自定义setSessionFactory方法并正确配置SessionFactory,确保了Hibernate组件的正常工作。
1910

被折叠的 条评论
为什么被折叠?



