Caused by: java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required,原来使用过配置文件的方式,这次使用了注解竟然出现这个纠结的问题,找了好久发现没有什么不对的啊,但终究还是不对,好吧无奈求助百度,结果发现这种错误真不少,这个情况跟我的一样。。。如何设置sessionFactory呢?项目中所有Dao实现类都继承了HibernateDaoSupport实现接口
根据提示是没有'sessionFactory' 或者'hibernateTemplate',但是通过下面代码给他注解了还是报同样的错误:
@Resource
private org.hibernate.SessionFactory sessionFactory;
结果查看HibernateDaoSupport的源代码得知:setSessionFactory方法是:
public final void setSessionFactory(SessionFactory sessionFactory) {
if (this.hibernateTemplate == null || sessionFactory != this.hibernateTemplate.getSessionFactory()) {
this.hibernateTemplate = createHibernateTemplate(sessionFactory);
}
}
说明在子类中想通注解设置 sessionFactory (重写setter方法是不行的),那么怎么办,我们只能通过super.setSessionFactory ()调用
@Resource(name="sessionFactory")
private void setMySessionFactory(SessionFactory sessionFactory){
//这个方法名可以随便写,@Resource可以通过name 或者type来装载的。
super.setSessionFactory(sessionFactory);
}
谢谢他啊,问题解决。。