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

Spring MVC + Spring Data JPA+模糊查询

为了方便起见,service直接忽略,方便理解。

一. 方法一

1.  Controller层:

  方法参数如下,一定要加 "%"+name+"%"

/**
 * @description:
 * @author: czx<[email protected]>
 * @date: 2018/1/22 下午5:15
 * @version: V1.0
 */
@RestController
public class UserController {

    @Autowired
    private TeamRepository teamRepository;

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

}

 

2. Dao层:

 一定要使用 JPA 规定的形式 findBy+参数名+Like(参数)

/**
 * @description: 数据层
 * @author: czx<[email protected]>
 * @date: 2018/1/18 上午10:52
 * @version: V1.0
 */

public interface TeamRepository extends JpaRepository {

    
    List findByNameLike(String name);

 

 

二. 方法二

 1. Controller:

 

 参数简单化

 

/**
 * @description:
 * @author: czx<[email protected]>
 * @date: 2018/1/22 下午5:15
 * @version: V1.0
 */
@RestController
public class UserController {

    @Autowired
    private TeamRepository teamRepository;

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

}
2.Dao层:

需要自己定义SQL语句

 

/**
 * @description: 
 * @author: czx<[email protected]>
 * @date: 2018/1/18 上午10:52
 * @version: V1.0
 */

public interface TeamRepository extends JpaRepository {

    @Query(value = "select t from Team t where t.name like %?1%")
    List findByNameLike(String name);

 

      如有问题,欢迎邮件来访,[email protected],谢谢。

你可能感兴趣的:(Spring,Data,JPA,注解)