使用:maven+Spring+jpa+Junit4

 查询方式:SQL,JPQL查询,Specification多条件复杂查询

 返回类型:list<POJO>,list<Stinrg>,list<Object>,Page<Object>

git源码地址:https://github.com/litblank/SpringFrame/tree/master/DEMO/SpringData_jpa

springdata-jpa 八种查询方法

 

1. Pom.xml

 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.litblack</groupId>
  <artifactId>SpringData_jpa</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>SpringData_jpa Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <properties>
        <spring.version>4.3.4.RELEASE</spring.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <!-- jpa -->        
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.3.8.Final</version>
             <exclusions>
                <exclusion>
                    <groupId>org.javassist</groupId>
                    <artifactId>javassist</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.0-api</artifactId>
            <version>1.0.1.Final</version>
        </dependency> -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.3.11.Final</version>
            <exclusions>
                <exclusion>
                    <groupId>org.javassist</groupId>
                    <artifactId>javassist</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- oracle -->
        <dependency>
            <groupId>ojdbc</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.4</version>
        </dependency>
        <!-- mysql  -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
        <!-- ali 数据源连接 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.31</version>
        </dependency>
    &lt;dependency&gt;
        &lt;groupId&gt;javassist&lt;/groupId&gt;
        &lt;artifactId&gt;javassist&lt;/artifactId&gt;
        &lt;version&gt;3.12.1.GA&lt;/version&gt;
    &lt;/dependency&gt;
    
    &lt;!-- Test --&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
        &lt;artifactId&gt;spring-test&lt;/artifactId&gt;
        &lt;version&gt;${spring.version}&lt;/version&gt;
        &lt;scope&gt;test&lt;/scope&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;junit&lt;/groupId&gt;
        &lt;artifactId&gt;junit&lt;/artifactId&gt;
        &lt;version&gt;4.12&lt;/version&gt;
    &lt;/dependency&gt;
    
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
        &lt;artifactId&gt;spring-context&lt;/artifactId&gt;
        &lt;version&gt;${spring.version}&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
        &lt;artifactId&gt;spring-oxm&lt;/artifactId&gt;
        &lt;version&gt;${spring.version}&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
        &lt;artifactId&gt;spring-orm&lt;/artifactId&gt;
        &lt;version&gt;${spring.version}&lt;/version&gt;
    &lt;/dependency&gt;
    
    &lt;!-- springdata --&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework.data&lt;/groupId&gt;
        &lt;artifactId&gt;spring-data-jpa&lt;/artifactId&gt;
        &lt;version&gt;1.11.1.RELEASE&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework.data&lt;/groupId&gt;
        &lt;artifactId&gt;spring-data-commons-core&lt;/artifactId&gt;
        &lt;version&gt;1.4.1.RELEASE&lt;/version&gt;
    &lt;/dependency&gt;

</dependencies>
<build>
<finalName>SpringData_jpa</finalName>
</build>
</project>

pom.xml

 

2. Spring-config.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:p="http://www.springframework.org/schema/p" xmlns:cache="http://www.springframework.org/schema/cache"
    xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation</span>="http://www.springframework.org/schema/beans   
      http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/beans/spring-beans-3.1.xsd   </span>
      http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/context   </span>
      http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/context/spring-context-3.1.xsd   </span>
      http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/aop   </span>
      http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/aop/spring-aop-3.1.xsd   </span>
      http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/tx    </span>
      http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/tx/spring-tx-3.1.xsd</span>
      http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/cache </span>
      http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/cache/spring-cache-3.1.xsd</span>
      http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/data/jpa</span>
      http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/data/jpa/spring-jpa.xsd</span>
      http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/data/repository</span>
      http:<span style="color: #008000;">//</span><span style="color: #008000;">www.springframework.org/schema/data/repository/spring-repository-1.5.xsd"&gt;  </span>
&lt;context:component-scan base-<span style="color: #0000ff;">package</span>="com.litblack.jpa"&gt;&lt;/context:component-scan&gt;
                                      
&lt;!-- 配置Spring Data JPA扫描目录, repository 包 --&gt;
&lt;jpa:repositories base-<span style="color: #0000ff;">package</span>="com.litblack.jpa" /&gt; 

&lt;!-- 定义实体管理器工厂 --&gt;
&lt;bean &gt;
    &lt;property name="dataSource" ref="dataSource" /&gt;
    &lt;!-- 扫描pojo --&gt;
    &lt;property name="packagesToScan" value="com.litblack.jpa" /&gt;
    &lt;property name="persistenceProvider"&gt;
        &lt;bean <span style="color: #0000ff;">class</span>="org.hibernate.ejb.HibernatePersistence" /&gt;
    &lt;/property&gt;
    &lt;property name="jpaVendorAdapter"&gt;
        &lt;bean <span style="color: #0000ff;">class</span>="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"&gt;
            &lt;property name="generateDdl" value="true" /&gt;
               &lt;property name="database" value="MYSQL" /&gt;
            &lt;!-- &lt;property name="database" value="ORACLE" /&gt;  --&gt;
            &lt;!-- &lt;property name="databasePlatform" value="org.hibernate.dialect.MySQL5InnoDBDialect" /&gt; --&gt;
            &lt;property name="showSql" value="true" /&gt;
        &lt;/bean&gt;
    &lt;/property&gt;
    &lt;property name="jpaDialect"&gt;
        &lt;bean <span style="color: #0000ff;">class</span>="org.springframework.orm.jpa.vendor.HibernateJpaDialect" /&gt;
    &lt;/property&gt;
    &lt;property name="jpaPropertyMap"&gt;
        &lt;map&gt;
            &lt;entry key="hibernate.generate_statistics" value="false" /&gt;&lt;!-- 关闭打印的日志 --&gt;
            &lt;entry key="hibernate.query.substitutions" value="true 1, false 0" /&gt;
            &lt;entry key="hibernate.default_batch_fetch_size" value="16" /&gt;
            &lt;entry key="hibernate.max_fetch_depth" value="2" /&gt;
            &lt;entry key="hibernate.bytecode.use_reflection_optimizer" value="true" /&gt;
            &lt;entry key="hibernate.cache.use_second_level_cache" value="false" /&gt;
            &lt;entry key="hibernate.cache.use_query_cache" value="false" /&gt;
        &lt;/map&gt;
    &lt;/property&gt;
&lt;/bean&gt;

&lt;!-- 数据源 --&gt;
&lt;bean &gt;
    &lt;property name="driverClassName" value="com.mysql.jdbc.Driver" /&gt;
    &lt;property name="url" value="jdbc:mysql://localhost:3306/cyd?useUnicode=true&amp;amp;characterEncoding=UTF-8" /&gt;
    &lt;property name="username" value="root" /&gt;
    &lt;property name="password" value="root" /&gt;
&lt;/bean&gt;
&lt;!-- 配置事务管理器 --&gt;
&lt;bean &gt;
    &lt;property name="entityManagerFactory" ref="entityManagerFactory" /&gt;
&lt;/bean&gt;

&lt;!-- 启用 annotation事务 --&gt;
&lt;tx:annotation-driven transaction-manager="transactionManager" /&gt;

</beans>

Spring-config.xml

相关文章: