List<Product> findByState(String state);
所有的jpa查询方法都慢在2S以上,根据生成的SQL,在oracle下执行只需要0.1秒,就不明白了,是什么原因?请教下高手哈。
<!-- 数据源配置,使用应用中的DBCP数据库连接池 -->
<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
<!-- Connection Info -->
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- Connection Pooling Info -->
<property name="maxActive" value="${jdbc.pool.maxActive}" />
<property name="maxIdle" value="${jdbc.pool.maxIdle}" />
<property name="defaultAutoCommit" value="false" />
<!-- 连接Idle一个小时后超时 -->
<property name="timeBetweenEvictionRunsMillis" value="3600000" />
<property name="minEvictableIdleTimeMillis" value="3600000" />
</bean>
<!-- Spring Data Jpa配置, 扫描base-package下所有继承于Repository<T,ID>的接口 -->
<jpa:repositories base-package="com.*.dao" transaction-manager-ref="transactionManager" entity-manager-factory-ref="entityManagerFactory"/>
<!-- Jpa 事务配置 -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<!-- 数据源配置,在生产环境使用应用服务器的数据库连接池 -->
<!-- Jpa Entity Manager 配置 -->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter"/>
<property name="packagesToScan" value="com.*.entity.*"/>
<property name="jpaProperties">
<props>
<!--
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.SingletonEhCacheRegionFactory</prop>
<prop key="net.sf.ehcache.configurationResourceName">cache/ehcache-hibernate-local.xml</prop>
-->
<prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>
</props>
</property>
</bean>
<bean id="hibernateJpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="databasePlatform">
<bean factory-method="getDialect" class="org.springside.modules.persistence.Hibernates">
<constructor-arg ref="dataSource"/>
</bean>
</property>
</bean>
相关推荐
- **简化编程模型**:通过Repository接口,开发者只需要编写查询方法的签名,Spring JPA会自动生成对应的SQL语句。 - **事务管理**:Spring JPA与Spring的事务管理集成,提供了声明式事务处理,使得事务管理更加...
在IT行业中,构建高效、可维护的Web应用是至关重要的,而"Maven+SpringMVC+SpringJPA+Hibernate"的组合就是一个常见的解决方案。这个组合提供了全面的开发工具和技术,帮助开发者快速构建基于Java的Web应用程序。...
7. **Specifications**:对于复杂的查询,Spring Data JPA提供了Specifications接口,允许动态构建查询条件。这在处理复杂的查询逻辑时非常有用。 8. **Pagination and Sorting**:Spring Data JPA支持分页和排序...
Spring Data JPA API。 Spring Data JPA 开发文档。 官网 Spring Data JPA API。
9. **JPA Querydsl Support**:Spring Data JPA 还支持 Querydsl,这是一个强大的类型安全的查询语言,它可以进一步提高查询的可读性和可维护性。 10. **Elasticsearch 集成**:虽然不是 Spring Data JPA 的核心...
此外,Spring JPA还支持更复杂的查询,如使用`@Query`注解编写自定义SQL或HQL,以及使用`Specification`构建动态查询。 在实际开发中,我们还可以结合Spring Boot的自动化配置、事务管理、异常处理等功能,进一步...
Struts2、Spring和JPA是Java开发中常用的三大框架,它们在企业级应用开发中发挥着关键作用。Struts2作为MVC框架,负责控制应用程序的流程;Spring框架则是一个全面的后端解决方案,提供了依赖注入(DI)、面向切面...
例如,Spring Data JPA支持自动化的查询生成,只需定义Repository接口,无需编写任何实现代码,就可以执行CRUD(创建、读取、更新、删除)操作。此外,它还支持复杂的查询方法命名,如findByXXX,根据方法名自动构建...
4. Repository接口将继承自Spring Data JPA提供的基类,如`JpaRepository`,并可能包含自定义查询方法。 5. Service层将调用Repository接口,处理业务逻辑。 6. Controller层将处理HTTP请求,调用Service层并返回...
Spring Data JPA进一步扩展了Spring JPA,提供了更高级别的抽象,如自动化的查询生成和Repository接口。 对于集成MySQL,首先你需要在项目中添加MySQL的JDBC驱动依赖。然后,配置Spring的DataSource,包括数据库URL...
在IT行业中,数据库操作是应用程序的核心部分,Spring JPA(Java Persistence API)是Spring框架提供的一种简化ORM(对象关系映射)操作的方式。本主题主要围绕"spring jpa操作数据库 级联数据 hibernate"展开,探讨...
Spring JPA,全称Spring Data JPA,是Spring框架的一部分,用于简化Java持久层的开发。它提供了一种声明式的方式来操作数据库,...通过实践,你可以进一步掌握Spring框架和JPA的高级特性,如查询构造器、事务管理等。
Spring Data JPA是Spring对JPA的扩展,提供了更高级的功能,如自动化的Repository接口实现和动态查询生成。 6. **日志库和Spring JPA的配合** 文件名中的`log4j-1.2.14.jar`和`commons-logging.jar`是常见的日志...
Spring Data JPA提供了强大的Repository抽象,允许开发者以声明式的方式定义数据操作,如查询方法。只需要在接口上定义方法名,Spring Data JPA就能自动生成对应的SQL语句。例如,`findAll()`会执行SELECT ALL查询,...
这是整合SpringMVC+Spring+SpringDataJPA+Hibernate简单的实现登录的功能,用的是mysql数据库,这是一个web Project 如果你用的是JavaEE6那么你要注意bean-validator.jar和weld-osgi-bundle.jar与slf4j的jar包冲突。...
这里的JpaRepository接口已经包含了基本的CRUD方法,而`findByUsername`是我们自定义的查询方法,Spring Data JPA会自动根据方法名生成对应的SQL查询。 在Struts2 Action中,我们可以这样使用UserRepository: ```...
### Spring Boot + Spring JPA 入门教程 #### 一、Spring Boot 快速入门 Spring Boot 是一种简化 Spring 应用程序开发的新框架。它旨在简化基于 Spring 的应用程序的初始设置和配置过程。 ##### 1. 创建 Maven ...
在处理复杂的查询需求时,Spring Data JPA的`Specifications`接口提供了动态构建查询的能力,允许我们在运行时根据业务逻辑创建复杂的查询条件。 ### 单条件查询 在Spring Data JPA中,我们可以使用`...