Ken*_*nji 3 maven querydsl spring-boot
我发现有很多像我这样的问题,但从来没有在我的Spring-boot项目中启用Querydsl的答案。这是我的依赖项和插件:pom.xml
<properties>
<querydsl.version>3.7.4</querydsl.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-core</artifactId>
<version>${querydsl.version}</version>
</dependency>
<dependency>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>${querydsl.version}</version>
</dependency>
<dependency>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>${querydsl.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
//added for QueryDsl
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>maven-apt-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources</outputDirectory>
<processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Run Code Online (Sandbox Code Playgroud)
这是我的实体:
@Entity
@Table(name = "phone_table")
public class Phone {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long phoneId;
private String phoneName;
private String phoneBrand;
private String phoneManufacturer;
...
Run Code Online (Sandbox Code Playgroud)
这是存储库:
@Repository
public interface MobileRepository extends JpaRepository<Phone,Long> ,QueryDslPredicateExecutor<Phone>{
}
Run Code Online (Sandbox Code Playgroud)
我的项目没有运行,它是错误提示 Did not find a query class ir.mtajik.entities.QPhone for domain class ir.mtajik.entities.Phone和原因:无法创建 QPhone 类。我用谷歌搜索了很多。有很多像我这样的问题,但答案在我的情况下不起作用。我试过这些:
@Document但它不起作用,不知道把它放在哪里。正如评论中提到的,您还需要为 Query DSL 配置 Maven-apt 插件,因此将其添加到 pom 插件部分:
<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.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。这篇春季文章将为您提供帮助。并且不要忘记mvn clean install
还要确保 EntityManager、Jpa 供应商的 Bean 是基于 XML 或基于 Java 定义的,并指向您的 Repo 包。
小智 6
当我更换处理器时,它对我有用。
所以你有它:
<configuration>
<outputDirectory>target/generated-sources</outputDirectory>
<processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
Run Code Online (Sandbox Code Playgroud)
将其更改为:
<configuration>
<outputDirectory>target/generated-sources</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助 ;)
| 归档时间: |
|
| 查看次数: |
8526 次 |
| 最近记录: |