pring注解方式,异常 'sessionFactory' or 'hibernateTemplate' is required的解决方法

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);
 }

谢谢他啊,问题解决。。

猜你喜欢

转载自tommy-lu.iteye.com/blog/2279871