QueryDsl - 如何使用 Maven 创建 Q 类?

问题描述 投票:0回答:2

我有带有 spring data 的 web 项目 spring mvc
这是例子:
https://github.com/prilia/SpringJpa-Quarydsl-Test/tree/master/JpaSpringQuarydsl

我检查了很多我在网上找到的pom.xml来创建实体的Q类,但不乏。
请帮我用 Maven 创建 Q 类。

spring jpa spring-data querydsl
2个回答
9
投票

你需要插件,试试这个:

                <plugin>
                    <groupId>com.mysema.maven</groupId>
                    <artifactId>maven-apt-plugin</artifactId>
                    <version>1.0.4</version>
                    <executions>
                        <execution>
                            <id>process-common-model</id>
                            <goals>
                                <goal>process</goal>
                            </goals>
                            <phase>generate-sources</phase>
                            <configuration>
                                <sourceDirectory>${project.build.directory}/{yourSourceDir}</sourceDirectory>
                            </configuration>
                        </execution>
                    </executions>
                    <configuration>
                        <outputDirectory>target/generated-sources/querydsl</outputDirectory>
                        <processors>
                            <processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
                        </processors>
                        <options>
                            <querydsl.entityAccessors>true</querydsl.entityAccessors>
                            <querydsl.createDefaultVariable>true</querydsl.createDefaultVariable>
                            <querydsl.packageSuffix>.qdsl</querydsl.packageSuffix>
                        </options>
                    </configuration>
                </plugin>

我从我的项目中复制了这个。只需将其添加到您的

pom
并尝试一下。

上面的代码中还有其他选项,如果您只想一个简单的选项,请关注 querydsl 参考


0
投票

接受的答案中的 apt-maven-plugin 多年来没有维护。当我迁移到 Spring Boot 3 时,这是一个问题的根源。

您可以使用maven编译器插件生成QClass。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.11.0</version>
    <configuration>
        <annotationProcessorPaths>
            <path>
                <groupId>com.querydsl</groupId>
                <artifactId>querydsl-apt</artifactId>
                <version>5.0.0</version>
                <classifier>jpa</classifier>
            </path>
            <path>
                <groupId>javax.persistence</groupId>
                <artifactId>javax.persistence-api</artifactId>
                <version>2.2</version>
            </path>
            <!-- In case your project uses Lombok add here the Lombok dep below -->
            <path>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.30</version>
            </path>
        </annotationProcessorPaths>
    </configuration>
</plugin>

如果您使用 Jakarta EE (Spring Boot 3),您需要稍微修改 deps:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.11.0</version>
    <configuration>
        <annotationProcessorPaths>
            <path>
                <groupId>com.querydsl</groupId>
                <artifactId>querydsl-apt</artifactId>
                <version>5.0.0</version>
                <classifier>jakarta</classifier>
            </path>
            <dependency>
                <groupId>jakarta.persistence</groupId>
                <artifactId>jakarta.persistence-api</artifactId>
                <version>3.1.0</version>
            </dependency>
            <!-- In case your project uses Lombok add here the Lombok dep below -->
            <path>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.30</version>
            </path>
        </annotationProcessorPaths>
    </configuration>
</plugin>
© www.soinside.com 2019 - 2024. All rights reserved.