Spring Data 2021.1 (Q) Release Notes
Spring Data Commons—2.6版本
1、域模型现jMolecules增加了@Identity注解
2、QuerydslPredicateExecutor、QueryByExampleExecutor 及其响应式变体为 Spring Data 提供了强大的查询构建能力。它们允许你以更灵活和动态的方式定义查询,支持流式处理结果,并提供了与多种存储模块和响应式编程框架的集成。通过使用这些接口和特性,你可以构建出更高效、更易于维护的查询逻辑。
(1)QueryDslPredicateExecutor是Spring Data JPA提供的一个接口,用于在查询中使用动态条件。它允许开发人员根据不同的查询条件动态构建查询语句,而无需手动编写SQL语
// 1. 添加依赖
// pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
</dependency>
// 2. 创建实体类
@Entity
@Table(name = "users")
@QueryEntity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String email;
// other fields, getters, and setters
}
// 3. 创建查询接口
public interface UserRepository extends JpaRepository<User, Long>, QueryDslPredicateExecutor<User> {
}
// 4. 使用动态条件查询
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public List<User> searchUsers(String username, String email) {
QUser qUser = QUser.user;
BooleanExpression predicate = qUser.username.eq(username)
.and(qUser.email.eq(email));
return (List<User>) userRep