spring data JPA 模糊查詢 --- 使用 LIKE --- 的寫法

guile發表於2019-03-13

方法一
1.  Controller層:
方法引數一定要加 "%"+name+"%"

@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(引數)

public interface TeamRepository extends JpaRepository<Team, String> {
    List<Team> findByNameLike(String name);

 

方法二
1. Controller:

引數簡單化

@RestController
public class UserController {

    @Autowired
    private TeamRepository teamRepository;

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

2.Dao層:
自己定義 SQL 語句

/** 引數1 就是 ?1 ,引數2 就是 ?2   */
public interface TeamRepository extends JpaRepository<Team, String> {
    @Query(value = "select t from Team t where t.name like '%?1%'")
    List<Team> findByNameLike(String name);

 


原文地址: https://www.cnblogs.com/yang1314/p/9295764.html

相關文章