我有这个存储库:
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
。我的设置有什么问题?