本文共 1862 字,大约阅读时间需要 6 分钟。
在Spring Data JPA中,支持通过@Query注解定义自定义查询,同时支持LIKE模糊查询。以下是JPA模糊查询的典型语法格式:
public ListgetAllInstitution(final Application app) { // 获取用户信息 Sysuser user = (Sysuser) app.getUser(); String userGljg = user.getGljg(); // 判断用户级别并构造查询条件 String zdGljg = null; 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 adg = query.getResultList(); return adg;}
在Spring MVC应用中,模糊查询可以通过两种方式实现:
这种方法适用于简单的场景,直接在前端控制器中构造查询条件:
@RestControllerpublic class UserController { @Autowired private TeamRepository teamRepository; @GetMapping("/findByNameLike") public List findByNameLike(String name) { return teamRepository.findByNameLike("%" + name + "%"); }} 这种方法适用于需要复杂查询条件的场景,需要手动定义SQL语句:
@Repositorypublic interface TeamRepository extends JpaRepository{ @Query(value = "select t from Team t where t.name like %?1%") List findByNameLike(String name);}
@Cacheable注解,提升性能。以上内容为个人经验,希望对您有所帮助!如有任何问题或建议,请随时联系!
转载地址:http://nlefk.baihongyu.com/