首页 > 解决方案 > Spring JPA 数据:Eclipse 中的 Querydsl 在使用查询 dsl 类时给出编译错误

问题描述

我在 Eclipse 中添加了下面的查询 dsl 插件以生成 qdsl 类。在我的存储库中使用 DSL 类时,会出现复杂错误。

`
            <!--Plugin for query-dsl -->
            <plugin>
                <groupId>com.mysema.maven</groupId>
                <artifactId>apt-maven-plugin</artifactId>
                <version>1.1.2</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <configuration>                         
                            <outputDirectory>generated-sources/java</outputDirectory>
                            <!-- <outputDirectory>src/main/java</outputDirectory> -->
                            <processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

`

还启用了注释处理并在类路径中添加了 querydsl jar。

在此处输入图像描述

标签: javahibernatespring-dataspring-data-jpaquerydsl

解决方案


使用上面给定的设置,我在 pom 中做了以下更改,效果很好。

  1. 在 Eclipse 中启用注释处理。
  2. 在类路径的源代码中添加生成的包。
  3. 在 pom.xml 中添加以下更改。

`

    <dependency>
                <groupId>com.mysema.querydsl</groupId>
                <artifactId>querydsl-core</artifactId>
                <version>3.6.7</version>
            </dependency>
            <dependency>
                <groupId>com.mysema.querydsl</groupId>
                <artifactId>querydsl-apt</artifactId>
                <version>3.7.4</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>com.mysema.querydsl</groupId>
                <artifactId>querydsl-jpa</artifactId>
                <version>3.7.4</version>
            </dependency>


<!--Plugin for query-dsl -->
            <plugin>
                <groupId>com.mysema.maven</groupId>
                <artifactId>apt-maven-plugin</artifactId>
                <version>1.1.2</version>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <configuration>                         
                            <outputDirectory>src/main/generated/</outputDirectory>
                            <processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
                        </configuration>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>com.mysema.querydsl</groupId>
                        <artifactId>querydsl-apt</artifactId>
                        <version>3.7.4</version>
                    </dependency>
                </dependencies>
            </plugin>

`


推荐阅读