Eclipse中的Spring Data Querydsl不生成查询类型类

km0tfn4u  于 2023-08-04  发布在  Spring
关注(0)|答案(4)|浏览(133)

我没有看到eclipse中生成的查询dsl类添加在pom.xml中的依赖项和插件下面。一些人可以回顾一下spring Boot 中query-dsl集成所需的以下更改吗?

<dependency>
    <groupId>com.mysema.querydsl</groupId>
    <artifactId>querydsl-apt</artifactId>
    <version>${querydsl.version}</version>
    <scope>provided</scope>
</dependency>

<dependency>
    <groupId>com.mysema.querydsl</groupId>
    <artifactId>querydsl-jpa</artifactId>
    <version>${querydsl.version}</version>
</dependency>

<!--Plugin for query-dsl -->
    <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>
    </plugin>

字符串
`

k5ifujac

k5ifujac1#

在eclipse中,有时您必须多次刷新项目才能看到生成的源代码。如果没有,请尝试通过以下方式生成文件

right click on your project -> run as -> maven generate sources.

字符串

pcrecxhr

pcrecxhr2#

我遵循下面的2个步骤后,查询DSL类停止给出编译错误。
在eclipse中启用注解处理。在类路径的源代码中添加生成的包。

k10s72fa

k10s72fa3#

这个问题是由于M2E的注解处理。新的Eclipse版本包含一个实验性的特性,它将注解处理委托给maven插件,因此行为与从命令行使用mvn相同。
要启用该功能:
1.右键单击项目并选择属性
1.在属性中导航到Maven -> Annotation Processing
1.要为整个工作区启用此选项,而不仅仅是为此特定模块启用此选项,请选择Configure Workspace Settings

1.选择Experimental: Delegate annotation processing to maven plugins (for maven processor only).

1.单击“应用”。
这样Eclipse就可以使用pom.xml中定义的插件处理注解。现在,资源是在构建项目时生成的,也是作为依赖项找到的。不需要使用maven手动构建项目。

lokaqttq

lokaqttq4#

您添加的依赖项是正确的。它为带有@Entity注解的类生成Q类型。此注解来自后续版本中的jakarta.persistence包。它不将其视为实体。只有javax.persistence包中的@Entity才能被querydsl(5.0.0)识别。使用旧版本的spring data jpa。但这并不是一个理想的解决方案。更好的解决方法是改变插件的处理器,并在实体中添加@QueryEntity注解。这是密码。

<plugin>
                    <groupId>com.mysema.maven</groupId>
                    <artifactId>apt-maven-plugin</artifactId>
                    <version>1.1.3</version>
                    <executions>
                        <execution>
                            <phase>generate-sources</phase>
                            <goals>
                                <goal>process</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>target/generated-sources/java</outputDirectory>
                                <processor>com.querydsl.apt.QuerydslAnnotationProcessor</processor>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

字符串

相关问题