如何在Spring Data JPA中引入Querydsl


一、環境說明

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

 

二、具體配置

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

(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)配置插件:主要用來生成“查詢對象”。

            <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>             

 

2、設置源文件夾

經過上面pom.xml的配置后,就在 target/generated-sources 文件夾下面自動生成“查詢對象”。需要將該文件夾設置成“源文件夾”,以便可以將下面的java文件進行編譯使用。

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

 

3、dao中繼承接口QueryDslPredicateExecutor

 

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

 

三、寫在最后

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM