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。