jpa 如何使用maven创建Q类?

jchrr9hc  于 12个月前  发布在  Maven
关注(0)|答案(2)|浏览(239)

我有一个带spring数据的web项目spring mvc
以下是示例:
https://github.com/prilia/SpringJpa-Quarydsl-Test/tree/master/JpaSpringQuarydsl
我检查了很多我在web中找到的pom.xml来创建一个Q类实体,但没有缺少。
请帮助我用maven创建Q类。

58wvjzkj

58wvjzkj1#

你需要插件,试试这个:

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

zqdjd7g9

zqdjd7g92#

接受的答案中的apt-maven-plugin已经好几年没有维护了。这是我迁移到Sping Boot 3时的一个问题来源。
您可以使用maven-compiler-plugin生成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(Sping Boot 3),你需要稍微修改dep:

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

相关问题