添加插件 生成 Q…實體
<!--添加QueryDSL插件支持-->
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.1.3</version>
<dependencies>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>${querydsl.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
<options>
<!--修改包前綴 -->
<querydsl.packageSuffix>.dsl</querydsl.packageSuffix>
</options>
</configuration>
</execution>
</executions>
</plugin>
在插件中我們配置了 querydsl.packageSuffix 所以 生成的包路徑如下
此時重啓項目 會報錯 提示找不到 cn.zhangfusheng.user.model.QTbUser ,這是因爲我們配置了 dsl 的包前綴
解決辦法
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.querydsl.EntityPathResolver;
import org.springframework.data.querydsl.SimpleEntityPathResolver;
/**
* query dsl 配置
*/
@Configuration
public class DataSourceQueryDslConfig {
/**
* 配置 query dsl 的前綴
* @return
*/
@Bean
public EntityPathResolver entityPathResolver() {
return new ProjectEntityPathResolver(".dsl");
}
public static class ProjectEntityPathResolver extends SimpleEntityPathResolver implements EntityPathResolver {
/**
* Creates a new {@link SimpleEntityPathResolver} with the given query package suffix.
* @param querySuffix must not be {@literal null}.
*/
public ProjectEntityPathResolver(String querySuffix) {
super(querySuffix);
}
}
}