这篇文章主要介绍了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); |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。