1 添加依赖
<dependencies>
<!-- Querydsl 核心库 -->
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>5.0.0</version> <!-- 请使用与项目兼容的最新版本 -->
</dependency>
<!-- 注解处理器,用于生成 Q 类 -->
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>5.0.0</version>
<scope>provided</scope>
</dependency>
<!-- JPA 注解支持 -->
<dependency>
<groupId>jakarta.persistence</groupId>
<artifactId>jakarta.persistence-api</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
2 配置编译插件(生成Q类)
<build>
<plugins>
<!-- 编译时生成 Q 类 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>17</source> <!-- 根据你的 JDK 调整 -->
<target>17</target>
<annotationProcessorPaths>
<path>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>5.0.0</version>
</path>
<path>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>5.0.0</version>
</path>
</annotationProcessorPaths>
<compilerArgs>
<arg>-proc:only</arg>
<arg>-processor</arg>
<arg>com.querydsl.apt.jpa.JPAAnnotationProcessor</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
3 使用
@Entity
public class User {
@Id
@GeneratedValue
private Long id;
private String username;
private Integer age;
private String status;
}
public interface UserRepository extends JpaRepository<User, Long>,
QuerydslPredicateExecutor<User> {}
QUser user = QUser.user;
Predicate predicate = user.age.gt(25).and(user.status.eq("ACTIVE"));
List<User> result = userRepository.findAll(predicate);
发表回复