springboot的模糊查询怎么实现的
时间: 2024-05-03 09:17:12 浏览: 59
按名字模糊查询-编译原理(陈火旺第三版)课后练习答案
在Spring Boot中,可以使用JPA的Criteria API或Spring Data JPA的方法命名约定来实现模糊查询。
1. 使用JPA的Criteria API进行模糊查询
通过创建CriteriaBuilder对象,然后使用like方法来实现模糊查询。例如:
```java
EntityManager entityManager = ...;
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Entity> criteriaQuery = criteriaBuilder.createQuery(Entity.class);
Root<Entity> root = criteriaQuery.from(Entity.class);
criteriaQuery.select(root);
criteriaQuery.where(criteriaBuilder.like(root.get("name"), "%" + keyword + "%"));
List<Entity> entities = entityManager.createQuery(criteriaQuery).getResultList();
```
2. 使用Spring Data JPA的方法命名约定进行模糊查询
Spring Data JPA提供了一种简单的方法来实现模糊查询。只需要在方法名中使用关键字"Containing"或"Like",然后传入待查询的关键字即可。例如:
```java
public interface EntityRepository extends JpaRepository<Entity, Long> {
List<Entity> findByNameContaining(String keyword);
}
```
或者
```java
public interface EntityRepository extends JpaRepository<Entity, Long> {
List<Entity> findByNameLike(String keyword);
}
```
这样就可以实现对name字段的模糊查询了。
阅读全文