如何在Spring Data JPA中引入Querydsl

1、環境說明java

基礎框架採用Spring Boot、Spring Data JPA、Hibernate。在動態查詢中,有一種方式是採用Querydsl的方式。框架

 

2、具體配置maven

一、在pom.xml中,引入相關包和配置插件。spa

(1)引入包(注:不須要版本號,Spring Boot 會自動匹配合適的版本)插件

<!-- Querydsl相關包 -->         
         <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-jpa</artifactId>
        </dependency>
        
        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-apt</artifactId>
        </dependency>

(2)配置插件:主要用來生成「查詢對象」。code

            <plugin>
              <groupId>com.mysema.maven</groupId>
              <artifactId>maven-apt-plugin</artifactId>
              <version>1.0.4</version>
              <executions>
                <execution>
                  <phase>generate-sources</phase>
                  <goals>
                    <goal>process</goal>
                  </goals>
                  <configuration>
                    <outputDirectory>target/generated-sources</outputDirectory>
                    <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
                  </configuration>
                </execution>
              </executions>
            </plugin>             

 

二、設置源文件夾xml

通過上面pom.xml的配置後,就在 target/generated-sources 文件夾下面自動生成「查詢對象」。須要將該文件夾設置成「源文件夾」,以即可以將下面的java文件進行編譯使用。對象

生成的查詢對象,都是在原實體(bo)類的名字前,加上 Q 表示。blog

 

三、dao中繼承接口QueryDslPredicateExecutor繼承

 

四、在service層使用 Querydsl方式進行是查詢,例如:

 

3、寫在最後

此文僅做爲引入Querydsl的筆記,並不表明做者本人推薦使用Querydsl。就實際應用而言,我的更傾向於使用 JPA Criteria 的方式來實現動態查詢,其接口是JpaSpecificationExecutor。

相關文章
相關標籤/搜索