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);
}
谢谢他啊,问题解决。。
分享到:
相关推荐
例如,在Service层的方法上添加此注解,Spring会在方法执行前后自动处理事务的开启和提交,如果方法中发生异常,Spring会回滚事务。这种方式大大简化了代码,避免了手动管理事务的复杂性。同时,Spring还提供了编程...
@Required注解用于setter方法,表明该setter方法的依赖关系必须在配置时填充,否则将抛出一个BeanInitializationException异常。 29、@Autowired注解有什么用? @Autowired注解用于自动注入依赖,它会自动查找匹配...
Spring Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop Thomas Risberg Darren Davison Dmitriy Kopylenko Mark Pollack Thierry Templier Erwin ...
- 集成Hibernate,利用SessionFactory和HibernateTemplate。 - 集成Struts1和Struts2,实现MVC架构。 - 集成JPA,使用EntityManager和HibernateJpaVendorAdapter。 - 配置二级缓存(如Hibernate的EHCache)以...
4. **异常处理**: 声明式事务管理基于异常驱动,当方法抛出未检查异常(继承自`RuntimeException`)或`Error`时,事务会自动回滚;而检查异常(非`RuntimeException`)则不会触发回滚,除非在注解中指定了`rollback...
- 使用`@Transactional`注解进行方法级别的事务配置,如`PROPAGATION_REQUIRED`表示支持当前事务,无事务则新建。 通过上述讲解,我们可以了解到Spring的核心特性和使用方式,包括其优点、依赖注入的实现、控制...
2. 声明式事务管理:这是Spring推荐的方式,通过在XML配置或注解中声明事务属性,Spring会自动处理事务的开始、提交、回滚等操作。例如,使用TransactionProxyFactoryBean可以创建一个具有事务管理能力的代理类,...
- 在Spring中,我们可以定义DAO(数据访问对象)和Service层的bean,通过@Autowired注解注入SessionFactory和事务管理器。 ```xml <property name="sessionFactory" ref="sessionFactory"/> ``` 5. **...
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中,可以通过XML或注解的方式定义对象及其依赖关系。例如,使用`<bean>`标签来配置对象: ```xml ``` - **初始化对象工厂**:使用`ClassPathXmlApplicationContext`类加载配置文件...
在此示例中,`createUser`方法会在一个事务中执行,如果出现任何异常,Spring会自动回滚事务,保证数据的一致性。 Hibernate作为Spring的伙伴,提供了对JDBC的高级封装,使得对象和数据库表之间的映射变得简单。在...
9.9. 常见问题的解决方法 9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 ...
声明式事务管理通过TransactionProxyFactoryBean或@Transactional注解实现,更简洁且易于维护,支持PROPAGATION_REQUIRED等事务传播行为,可以在出现异常时自动回滚事务。 综上所述,Spring 框架以其强大的功能和...
- Spring为Hibernate等ORM框架提供了集成支持,如定义DataSource,创建SessionFactory,并通过HibernateDaoSupport和HibernateTemplate进行数据库操作。 - 解决OpenSessionInView问题,可以使用...
9.9. 常见问题的解决方法 9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 ...
在Spring中集成Hibernate,通常需要在上下文配置文件中定义DataSource和SessionFactory,然后在DAO层,可以通过继承HibernateDaoSupport类,利用HibernateTemplate进行数据库操作。为解决OpenSessionInView的问题,...