QueryDslPredicateExecutor在运行时抛出异常

时间:2018-01-26 18:03:56

标签: java spring maven querydsl

我有这个存储库:

import org.springframework.data.querydsl.QueryDslPredicateExecutor;

public interface IFarmRepository extends JpaRepository<Farm, Long>, QueryDslPredicateExecutor<Farm>{
}

当我从QueryDslPredicateExecutor扩展存储库时,我已阅读过,我可以期待maven生成QFarm类。此类可用于生成Predicate以传递给新获取的findAll(Predicate predicate)

QFarm正在生成,但我甚至没有使用它,因为我甚至无法在运行时通过异常,因为创建bean的可能性,由以下原因引起:

java.lang.ClassNotFoundException: com.mysema.query.types.Predicate

我已经包含在域项目的 pom.xml中,这与抛出异常的项目不同(如果没有生成QFarm) :

    //more dependencies...
    <dependency>
        <groupId>com.querydsl</groupId>
        <artifactId>querydsl-core</artifactId>
        <version>4.1.4</version>
    </dependency>
      <dependency>
        <groupId>com.querydsl</groupId>
        <artifactId>querydsl-jpa</artifactId>
        <version>4.1.4</version>
    </dependency>
      <dependency>
        <groupId>com.querydsl</groupId>
        <artifactId>querydsl-apt</artifactId>
        <version>4.1.4</version>
    </dependency>
</dependencies>
<build>
    <plugins>
    <plugin>
      <groupId>com.mysema.maven</groupId>
      <artifactId>apt-maven-plugin</artifactId>
      <version>1.1.3</version>
      <dependencies>

        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-core</artifactId>
            <version>4.1.4</version>
        </dependency>
          <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-jpa</artifactId>
            <version>4.1.4</version>
        </dependency>
          <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-apt</artifactId>
            <version>4.1.4</version>
        </dependency>

      </dependencies>
      <executions>
        <execution>
          <phase>generate-sources</phase>
          <goals>
            <goal>process</goal>
          </goals>
          <configuration>
            <outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
             <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
          </configuration>
        </execution>
      </executions>
    </plugin>
    </plugins>
</build>

但是,在存储库项目<dependencies>部分中附加这些依赖项不会产生任何影响。

我认为这不应该发生,主要是因为我使用的是com.querydsl软件包,而不是de com.mysema.query。我的设置有什么问题?

0 个答案:

没有答案