因为你没有注入sessionFactory!
如果你继承了HibernateDaoSupport,你必须得用xml方式进行注入sessionFactory,不能用注解的方式注入,因为sessionFactory在HibernateDaoSupport里面,你看不到,所以没法用@Resource注入。
你上面写了private SessionFactory sessionFactory,但这样没用,必须得有setSessionFactory()这个方法才行。
反正我以前想用注解注入,没有成功。
两个解决办法:
1.你用xml初始化你的dao bean,并用xml方式注入sessionFactory.
2.可以用注解的方式注入,但不要继承HibernateDaoSupport,然后在dao里写上setSessionFactory()方法,用注解方式将其注入即可。
如果谁能用注解方式注入继承了HibernateDaoSupport类的dao,麻烦能告诉我一声,谢谢,呵呵。
我所了解的是:
父类依赖sessionFaction,具有setSessionFactory方法,但这个方法是final的,不能覆写。因此需要自己定义一个方法,并注入sessionFactory,然后调用父类setSessionFactory方法,将对象传入。
给你个例子:
@Repository
public class xxxImpl extends HibernateDaoSupport implements xxxDao {
@Resource
public void setSF(SessionFactory sf) {
super.setSessionFactory(sf);
}
.
.
.
}