我有带有 spring data 的 web 项目 spring mvc
这是例子:
https://github.com/prilia/SpringJpa-Quarydsl-Test/tree/master/JpaSpringQuarydsl
我检查了很多我在网上找到的pom.xml来创建实体的Q类,但不乏。
请帮我用 Maven 创建 Q 类。
你需要插件,试试这个:
<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 参考
接受的答案中的 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>