java - 如何在 spring boot 1.4.1 中配置 querydsl?

标签 java spring spring-boot spring-data querydsl

我正在尝试使用 spring-data-jpa 为项目启用 querydsl,但是我遇到了一些编译错误,例如:

The type com.querydsl.core.types.Predicate cannot be resolved. It is indirectly referenced from required .class files

此外,当我运行 mvn clean install 时,我得到了这个:

Caused by: java.lang.ClassNotFoundException: com.querydsl.core.annotations.QueryEntities

我查看类路径中的 jar,我可以看到 querydsl-core 4.1.4、querydsl-apt 4.1.4 和 querydsl-jpa 4.1.4。但是这个项目仍然没有为我编译,springboot 1.4.1 和 querydsl 有什么问题吗?

我的 pom.xml 文件中有这个

<dependency>
    <groupId>com.querydsl</groupId>
    <artifactId>querydsl-jpa</artifactId>
</dependency>
<dependency>
    <groupId>com.querydsl</groupId>
    <artifactId>querydsl-apt</artifactId>
    <scope>provided</scope>
</dependency>

和插件

<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>

我做错了什么吗?

---更新---

我从 querydsl 4.1.4 降级到 4.1.3,至少正在编译项目。现在,我可以开始一些测试了,我会发布我的发现。

我认为这个问题仍然悬而未决,因为默认情况下 spring boot 1.4.1 带有 querydsl 4.1.4 版本。

最佳答案

将依赖项放入插件中。

<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>
    <dependencies>
        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-apt</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>
</plugin>

关于java - 如何在 spring boot 1.4.1 中配置 querydsl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40475013/

相关文章:

mysql - SpringBoot Mysql数据库无法打开JDBC连接执行DDL

java - Spring boot standalone CommandLineRunner 不会返回 spring-starter-amqp

java - 使用 web.xml 的 Servlet 映射

java - spring - 同时使用简单的 SimpleUrlHandlerMapping 和 AnnotationMapping

java - 将表单支持 bean 列表绑定(bind)到表单列表

java - 如何将没有时区计算的原始日期/时间存储到 MongoDb

javascript - 如何从 Spring Boot 的端点同时返回 JSON 对象和压缩文件夹

java - 为什么 Scanner.hasNextLine() 挂起?

java - 在 jframe 中读取已删除的面板

java - Spring MVC 中的语言环境