原来一直在使用Hibernate时,使用Dao直接继承Spring的HibernateDaoSupport类。后来仔细阅读Spring的doc,发现实际上这样做时没有必要的:
Hibernate 3.0.1 introduced a feature called "contextual Sessions", where Hibernate itself manages one current
Session per transaction. This is roughly equivalent to Spring's synchronization of one Hibernate Session per
transaction. A corresponding DAO implementation looks like as follows, based on plain Hibernate API:
public class ProductDaoImpl implements ProductDao {
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public Collection loadProductsByCategory(String category) {
return this.sessionFactory.getCurrentSession().createQuery("from test.Product product where product.category=?")
.setParameter(0, category)
.list();
}
}
<beans>
...
<bean id="myProductDao" class="product.ProductDaoImpl">
<property name="sessionFactory" ref="mySessionFactory"/>
</bean>
</beans>
先前测试的时候发现执行save/update方法的时候,实际不会真正提交,即不会有insert/update语句执行。解决的方式就是在service层上加上事务处理方式,执行后就OK。
同时,Hibernate的命名查询也很有用的,有点类似于iBatis。如果想自定义sql的话,倒是一个很不错的选择。
分享到:
相关推荐
- Spring框架的核心特性是依赖注入,它使得组件之间松耦合,方便测试和维护。 - AOP允许开发者定义“切面”,将关注点如日志、事务管理等与业务逻辑分离。 - Spring还提供了多种数据访问抽象,包括JDBC、JPA、...
《深入剖析Spring 3.2.0源码》 ...通过阅读和分析SpringSource-spring-framework-v3.2.0.M1-1-g94f8393.zip中的源代码,我们可以发现Spring框架的精巧设计,以及在设计模式、组件管理、事务处理等方面的优秀实践。
#### 四、Spring、Hibernate与Struts的集成应用 本节将详细介绍如何使用Spring、Hibernate和Struts来开发一个经典的三层架构应用——MyUsers。该应用将实现基本的CRUD(Create、Retrieve、Update、Delete)操作,...
它关注于应用系统的服务治理,帮助开发人员构建分布式系统的各种服务和应用,且与Spring Boot无缝集成。 控制反转(IOC)是Spring的核心概念之一,通过反转对象的创建和维护过程,由Spring容器来管理对象的生命周期...
Spring MVC的松耦合设计使得开发者可以自由选择视图技术,如JSP、Thymeleaf或FreeMarker。 此外,Spring还提供了对WebSocket、RESTful API、JSON序列化和反序列化的支持,以满足现代Web应用程序的需求。Spring Boot...
Spring框架是Java开发中的核心组件,它为构建可维护、模块化、松耦合的应用程序提供了全面的解决方案。本入门教程书籍旨在帮助新手快速掌握Spring的基本概念和实践应用。 《Spring 3.x企业应用开发实战》这本书可能...
Spring提供了对JDBC、ORM(Object-Relational Mapping)框架如Hibernate、MyBatis等的集成,简化了数据库操作,并支持声明式事务管理。 6. **MVC框架**: Spring MVC是Spring提供的Web应用开发框架,它采用Model-...
9. **Spring Cloud**:当与Spring5结合时,Spring Cloud提供了一套工具集,帮助开发者快速构建分布式系统,如服务发现、配置中心、熔断机制等。 10. **测试支持**:Spring提供了全面的测试支持,包括单元测试、集成...
"spring-spring-spring"这个标题可能是指Spring框架的三个核心组件:Spring Core、Spring MVC和Spring Data,也可能是在强调Spring框架的重要性或深度学习。在描述中未提供具体信息,我们将基于标签"spring"来探讨...
此外,Spring还与各种ORM框架(如Hibernate、MyBatis)集成,提供了更高级的数据访问功能。 七、Spring测试 Spring提供了强大的测试支持,包括单元测试和集成测试。可以使用Spring TestContext Framework进行测试,...
4. **数据访问/集成**:Spring提供了对各种持久化技术的支持,如JDBC、Hibernate、MyBatis等,简化了数据库操作。同时,它还提供了事务管理功能,可以在不同环境下进行声明式或编程式的事务控制。 5. **Spring Boot...
Spring 是一个开源的 Java 应用框架,以其模块化、松耦合的设计理念,广泛应用于企业级应用开发中。本篇将深入探讨 "spring.src.zip" 中的 Java 源代码,揭示 Spring 框架的核心机制和设计理念。 1. **模块架构** ...
3. **数据访问**:Spring提供了多种数据访问集成,包括JDBC、ORM框架(如Hibernate、MyBatis),以及对NoSQL数据库的支持。 4. **Web开发**:Spring MVC是Spring用于构建Web应用程序的模块,提供了模型-视图-控制器...
1. **依赖注入**:Spring的核心特性之一,通过容器管理对象及其依赖关系,使得代码更加松耦合,易于测试和维护。书中详细讲解了如何配置和使用依赖注入,包括XML配置、注解配置以及Java配置。 2. **Spring MVC**:...
1. **Spring框架概述**:Spring是一个开源的Java应用框架,它以依赖注入(Dependency Injection,DI)为核心,旨在简化Java应用程序的开发,通过提供事务管理、AOP(面向切面编程)、数据访问等组件,实现了松耦合和...
4. **Spring Data**:这个模块简化了与数据库的交互,包括JPA、Hibernate等ORM工具的集成,提供了便捷的数据访问接口。 5. **Spring Boot**:是近年来流行的快速开发框架,它默认配置了许多常见应用的设置,简化了...
Struts2、Hibernate和Spring是Java企业级开发中三大核心框架,它们构成了经典的SSH(Struts2、Spring、Hibernate)架构。这些框架分别解决了Web应用中的不同问题,为开发者提供了强大的功能支持。以下是对这三个框架...
9. **测试支持**:Spring提供了丰富的测试工具和API,如Mockito、Spring TestNG支持,方便进行单元测试和集成测试。 10. **Java 8兼容**:Spring4X全面支持Java 8的新特性,如Lambda表达式、Stream API等,提升了...
Spring框架还包括了对数据访问的强大支持,如Spring JDBC和ORM(对象关系映射)集成,如Hibernate、MyBatis等。Spring Data JPA和Spring Data MongoDB等项目则简化了与NoSQL数据库的交互。 在事务管理方面,Spring...
在实际开发中,Spring Framework不仅提供了上述功能,还与其他Spring项目,如Spring Boot、Spring Cloud等无缝集成,构建现代微服务架构。Spring Boot简化了Spring应用的初始设置,而Spring Cloud则为分布式系统提供...