`
i_feng
  • 浏览: 86606 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

ssh 
阅读更多

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

谢谢他啊,问题解决。。

分享到:
评论

相关推荐

    spring分别与jdbc和hibernate结合的事务控制--案例

    例如,在Service层的方法上添加此注解,Spring会在方法执行前后自动处理事务的开启和提交,如果方法中发生异常,Spring会回滚事务。这种方式大大简化了代码,避免了手动管理事务的复杂性。同时,Spring还提供了编程...

    Spring系列面试题129道(附答案解析)

    @Required注解用于setter方法,表明该setter方法的依赖关系必须在配置时填充,否则将抛出一个BeanInitializationException异常。 29、@Autowired注解有什么用? @Autowired注解用于自动注入依赖,它会自动查找匹配...

    spring chm文档

    Spring Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop Thomas Risberg Darren Davison Dmitriy Kopylenko Mark Pollack Thierry Templier Erwin ...

    spring2.5学习PPT 传智博客

    - 集成Hibernate,利用SessionFactory和HibernateTemplate。 - 集成Struts1和Struts2,实现MVC架构。 - 集成JPA,使用EntityManager和HibernateJpaVendorAdapter。 - 配置二级缓存(如Hibernate的EHCache)以...

    Hibernate编程式事务与Spring Aop的声明式事务(spring与hibernate集成)

    4. **异常处理**: 声明式事务管理基于异常驱动,当方法抛出未检查异常(继承自`RuntimeException`)或`Error`时,事务会自动回滚;而检查异常(非`RuntimeException`)则不会触发回滚,除非在注解中指定了`rollback...

    最全的Spring考题与答案

    - 使用`@Transactional`注解进行方法级别的事务配置,如`PROPAGATION_REQUIRED`表示支持当前事务,无事务则新建。 通过上述讲解,我们可以了解到Spring的核心特性和使用方式,包括其优点、依赖注入的实现、控制...

    spring面试题集

    2. 声明式事务管理:这是Spring推荐的方式,通过在XML配置或注解中声明事务属性,Spring会自动处理事务的开始、提交、回滚等操作。例如,使用TransactionProxyFactoryBean可以创建一个具有事务管理能力的代理类,...

    hibernate3.5与spring2.5.5整合最佳实践

    - 在Spring中,我们可以定义DAO(数据访问对象)和Service层的bean,通过@Autowired注解注入SessionFactory和事务管理器。 ```xml <property name="sessionFactory" ref="sessionFactory"/> ``` 5. **...

    Spring-Reference_zh_CN(Spring中文参考手册)

    12.2.2. 在Spring的application context中创建 SessionFactory 12.2.3. HibernateTemplate 12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. ...

    spring笔记

    - **配置对象工厂**:在Spring中,可以通过XML或注解的方式定义对象及其依赖关系。例如,使用`<bean>`标签来配置对象: ```xml ``` - **初始化对象工厂**:使用`ClassPathXmlApplicationContext`类加载配置文件...

    spring事务测试

    在此示例中,`createUser`方法会在一个事务中执行,如果出现任何异常,Spring会自动回滚事务,保证数据的一致性。 Hibernate作为Spring的伙伴,提供了对JDBC的高级封装,使得对象和数据库表之间的映射变得简单。在...

    Spring中文帮助文档

    9.9. 常见问题的解决方法 9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 ...

    spring面试大全

    声明式事务管理通过TransactionProxyFactoryBean或@Transactional注解实现,更简洁且易于维护,支持PROPAGATION_REQUIRED等事务传播行为,可以在出现异常时自动回滚事务。 综上所述,Spring 框架以其强大的功能和...

    java-spring面试题大全

    - Spring为Hibernate等ORM框架提供了集成支持,如定义DataSource,创建SessionFactory,并通过HibernateDaoSupport和HibernateTemplate进行数据库操作。 - 解决OpenSessionInView问题,可以使用...

    Spring API

    9.9. 常见问题的解决方法 9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 ...

    面试知识点总结--spring面试题大全.pdf

    在Spring中集成Hibernate,通常需要在上下文配置文件中定义DataSource和SessionFactory,然后在DAO层,可以通过继承HibernateDaoSupport类,利用HibernateTemplate进行数据库操作。为解决OpenSessionInView的问题,...

Global site tag (gtag.js) - Google Analytics