QuerySDL 配合Spring DATA JPA 绝了
1 了解Query DSL
QueryDSL简介
QueryDSL仅仅是一个通用的查询框架,专注于通过Java API构建类型安全的SQL查询。
QueryDSL可以通过一组通用的查询API为用户构建出适合不同类型ORM框架或者是SQL的查询语句,也就是说QueryDSL是基于各种ORM框架以及SQL之上的一个通用的查询框架。
借助QueryDSL可以在任何支持的ORM框架或者SQL平台上以一种通用的API方式来构建查询。目前QueryDSL支持的平台包括JPA,JDO,SQL,Java Collections,RDF,Lucene,Hibernate Search。
2 配置到项目
首先对于queryDSL有两个版本,com.mysema.querydsl和com.querydsl,前者是3.X系列,后者是4.X系列,这里使用的是后者.
第一步: Maven引入依赖
<!--query dsl-->
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>${querydsl.version}</version>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>${querydsl.version}</version>
<scope>provided</scope>
</dependency>
<!--query dsl end-->
第二步: 加入插件,用于生成查询实例
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.1.3</version>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
第三步: 执行mvn compile之后,可以找到该target/generated-sources/java,然后IDEA标示为源代码目录即可.
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190717105318278.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTU0NTM2Ng==,size_16,color_FFFFFF,t_70)
关于QueryDSL的多表关联查询,本人记忆深刻,需求来回更改,甚是劳累~~直接上代码