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);
以上为个人经验,希望能给大家一个参考,也希望大家多多支持w3xue。