SpringDataJpa like查詢無效的解決
SpringDataJpa like查詢無效
這裡寫自定義目錄標題
SpringDataJpa like查詢
@Query(value = "select u from CheckTask u where u.site.id =:siteid and u.creattime like CONCAT('%',:strLike,'%') ") List<CheckTask> findBySite_IdAndCreattimeLike(@Param("siteid")Long siteid,@Param("strLike") String strLike);
spring data jpa 不能是like
List<CheckPosition> findByPositionContainingAndSite_Id(String position,Long siteid);
Spring Data JPA 模糊查詢LIKE精簡版
一. 方法一
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語句
public interface TeamRepository extends JpaRepository<Team, String> { @Query(value = "select t from Team t where t.name like %?1%") List<Team> findByNameLike(String name);
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- JPA like 模糊查詢 語法格式解析
- SpringBoot @Autowired註解註入規則介紹
- SpringDataJpa的@Query註解報錯的解決
- 詳解使用Spring Data repository進行數據層的訪問問題
- 一文搞懂Spring中@Autowired和@Resource的區別