JPA like 模糊查询 语法格式解析

这篇文章主要介绍了JPA like 模糊查询 语法格式解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

目录

JPA like 模糊查询 语法格式

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

public List<InstitutionInfo> getAllInstitution(final Application app){

    String zdGljg = null;

    Sysuser user = (Sysuser) app.getUser();

    String userGljg = user.getGljg();

    if("00".equals(userGljg.substring(4, 6))){//市级机构权限

        zdGljg = userGljg.substring(0, 4) + "%";

    }else if("00".equals(userGljg.substring(6, 8))){//区县级机构权限

        zdGljg =  userGljg.substring(0, 6) + "%";

    }else{//乡镇级机构权限

        zdGljg = userGljg + "%";

    }

    Query query = entityManager.createQuery("select s from InstitutionInfo s where s.gljg like :zdGlbh ");

    query.setParameter("zdGlbh", zdGljg);

    List<InstitutionInfo> adg =query.getResultList();

    return adg;

}

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

Spring MVC + Spring Data JPA+模糊查询

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

一. 方法一

1. Controller层:

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

/**

 * @description:

 * @author: czx<15610554031@163.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(参数)

1

2

3

4

5

6

7

8

9

/**

 * @description: 数据层

 * @author: czx<15610554031@163.com>

 * @date: 2018/1/18 上午10:52

 * @version: V1.0

 */

  

public interface TeamRepository extends JpaRepository<Team, String> {    

    List<Team> findByNameLike(String name);

二. 方法二

1. Controller:

参数简单化

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

/**

 * @description:

 * @author: czx<15610554031@163.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语句

1

2

3

4

5

6

7

8

9

10

/**

 * @description:

 * @author: czx<15610554031@163.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);

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值