java List findAllBy中文模糊查询
时间: 2023-08-17 13:03:59 浏览: 89
在java List中进行模糊查询的实现方法
如果你使用的是 Spring Data JPA,你可以在 Repository 接口中定义一个方法,使用 `Like` 关键字实现中文模糊查询。
比如,假设你有一个实体类 `User`,其中有一个属性 `name`,你想要根据 `name` 进行中文模糊查询,你可以在 `UserRepository` 接口中定义如下方法:
```java
public interface UserRepository extends JpaRepository<User, Long> {
List<User> findAllByNameLike(String name);
}
```
在这个方法中,我们使用了 `Like` 关键字,同时传入一个以 `%` 为前缀和后缀的字符串 `name`,这样就可以实现中文模糊查询了。
另外,需要注意的是,如果你使用的是 MySQL 数据库,需要在查询语句中添加 `COLLATE utf8mb4_general_ci`,这样才能正确地进行中文模糊查询。因此,上面的方法应该改为:
```java
public interface UserRepository extends JpaRepository<User, Long> {
@Query("select u from User u where u.name like %:name% COLLATE utf8mb4_general_ci")
List<User> findAllByNameLike(@Param("name") String name);
}
```
在这个方法中,我们使用了 `@Query` 注解来自定义查询语句,同时在查询语句中添加了 `COLLATE utf8mb4_general_ci`。
阅读全文