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

作者:十&年 时间:2022-06-16 20:43:42 

JPA like 模糊查询 语法格式


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+"%"


/**
* @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(参数)


/**
* @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:

参数简单化


/**
* @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语句


/**
* @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);

来源:https://blog.csdn.net/xubenxismile/article/details/52403128

标签:JPA,like,模糊查询,语法格式
0
投稿

猜你喜欢

  • Spring Security整合CAS的示例代码

    2023-11-12 19:04:26
  • java前后端加密解密crypto-js的实现

    2023-11-29 12:09:31
  • ReentrantLock源码详解--公平锁、非公平锁

    2023-04-22 17:18:56
  • Springcloud微服务架构基础知识解析

    2023-01-26 14:37:10
  • SpringBoot实现异步事件驱动的方法

    2023-11-01 07:48:54
  • Java对List进行排序的两种实现方法

    2022-10-31 13:40:06
  • Java简单实现SpringMVC+MyBatis分页插件

    2023-09-09 23:08:45
  • Java画笔的简单实用方法

    2021-11-01 05:38:10
  • Java实战之在线租房系统的实现

    2022-09-29 04:44:18
  • Java数据结构学习之栈和队列

    2022-02-21 11:32:45
  • Java的数据类型和参数传递(详解)

    2022-12-30 18:52:25
  • java基础的详细了解第六天

    2021-11-05 16:18:49
  • Java+Swing实现医院管理系统的完整代码

    2023-03-17 00:40:21
  • Spring Boot实现异步请求(Servlet 3.0)

    2023-11-27 06:26:47
  • IDEA设置背景为自定义照片的操作方法

    2022-12-28 09:13:08
  • 浅谈Java中方法参数传递的问题

    2021-11-06 04:24:46
  • Java logback日志的简单使用

    2023-07-15 01:32:33
  • springboot 动态数据源的实现方法(Mybatis+Druid)

    2021-07-26 04:27:00
  • Java Spring事务的隔离级别详解

    2022-04-25 23:07:52
  • Spring Security过滤器链体系的实例详解

    2023-08-25 03:24:15
  • asp之家 软件编程 m.aspxhome.com