模糊查询:Spring Data JPA 如何进行模糊查询(LIKE) ?

Posted yang1314

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模糊查询:Spring Data JPA 如何进行模糊查询(LIKE) ?相关的知识,希望对你有一定的参考价值。

原文详见----->  https://blog.csdn.net/czx1204/article/details/79131281

一. 方法一

1.  Controller层:
  方法参数如下,一定要加 "%"+name+"%"
/**
 * @description:
* @author: 程志祥<[email protected]com>
 * @date: 2018/1/22 下午5:15
 * @version: V1.0
 */
@RestController
public class UserController {

    @Autowired
    private TeamRepository teamRepository;

    @GetMapping("/findByNameLike")
    public List<Team> findByNameLike(String name) {
        // 一定要加 "%"+参数名+"%"
        return teamRepository.findByNameLike("%"+name+"%");
    }

}
2. Dao层:
 一定要使用 JPA 规定的形式 findBy+参数名+Like(参数)
/**
 * @description: 数据层
 * @author: 程志祥<[email protected]com>
 * @date: 2018/1/18 上午10:52
 * @version: V1.0
 */
public interface TeamRepository extends JpaRepository<Team, String> {

    
    List<Team> findByNameLike(String name);
 

二. 方法二

 1. Controller:
 
 参数简单化
 
/**
 * @description:
* @author: 程志祥<[email protected]com>
 * @date: 2018/1/22 下午5:15
 * @version: V1.0
 */
@RestController
public class UserController {

    @Autowired
    private TeamRepository teamRepository;

    @GetMapping("/findByNameLike")
    public List<Team> findByNameLike(String name) {
        return teamRepository.findByNameLike(name);
    }

}
2.Dao层:
需要自己定义SQL语句
 
/**
 * @description:  * @author: 程志祥<[email protected]com>
 * @date: 2018/1/18 上午10:52
 * @version: V1.0
 */
public interface TeamRepository extends JpaRepository<Team, String> {

    @Query(value = "select t from Team t where t.name like ‘%?1%‘")
    List<Team> findByNameLike(String name);
 
           生活不易,且行且珍惜,谢谢


以上是关于模糊查询:Spring Data JPA 如何进行模糊查询(LIKE) ?的主要内容,如果未能解决你的问题,请参考以下文章

随记Spring Data JPA的几个坑

如何在spring data jpa中进行POJO投影以进行本机查询

Spring Data JPA:如何对 RDS Aurora PostgreSQL 实例之间的读取查询进行负载平衡?

Spring-Data-JPA 中的查询如何动态组装条件?

如何在 Spring Data (JPA) 派生查询中按多个属性排序?

使用Spring Data JPA进行数据分页与排序