spring boot 3.0已经发布挺长时间了,个人最近尝试了一下,一直比较喜欢jpa,于是准备整合一波querydsl,但是网上旧帖和水帖较多,一直没找到简单直接且有效的攻略,于是在此献丑,贡献一份。
问题集合
- 主要问题,springboot升级3.0,jpa包路径从
javax
改成jakarta
,在默认情况下,无法生存Q类
,也没办法使用JPAQuery
- 官网和github在看起来似乎已经很长时间没有改动了,所以在这些地方不容易找出答案
- 网络攻略都是springboot2.0或者gradle方面
答案
- 引入依赖,
重点:classifier标签
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<classifier>jakarta</classifier>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>5.0.0</version>
<scope>provided</scope>
<optional>true</optional>
<classifier>jakarta</classifier>
</dependency>
- 引入maven plugin,
重点:dependency中的classifier
<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</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>5.0.0</version>
<classifier>jakarta</classifier>
</dependency>
</dependencies>
</plugin>
- 需要注意的一点,每个项目配置可能会有差别,在使用maven install时会报出一下错误,导致此错误的情况也不太一致。不过我这里,是
因为配置了goals,导致install会出现这个错误,所以此处注释掉goals。其他情况不一定能适用此方式。
Attempt to recreate a file for type xxx