文章目录

  • JPA方法名查询
    • 1. 方法名表图
    • 2. 举例说明
    • 3. 测试

JPA依赖及配置在这篇文章: SpringBoot框架使用SpringDataJPA

JPA方法名查询

约定方法名一定要根据命名规范来书写,Spring Data 会根据前缀、中间连接词(Or、And、Like、NotNull 等类似 SQL 中的关键字)、内部拼接 SQL 代理生成方法的实现,约定方法名的方法见表:

1. 方法名表图

关键词 SQL符号 举例 最终执行的JPQL 片段
And and findByAddressLikeAndState … where x.lastname = ?1 and x.firstname = ?2
Or or findByLastnameOrFirstname … where x.lastname = ?1 or x.firstname = ?2
top limit findTop4 … where x.lastname limit (4)
Is,Equals = findByFirstname/ findByFirstnameIs / findByFirstnameEquals … where x.firstname = ?1
Between between findByStartDateBetween … where x.startDate between ?1 and ?2
LessThan < findByAgeLessThan … where x.age < ?1
LessThanEqual <= findByAgeLessThanEqual … where x.age <= ?1
GreaterThan > findByAgeGreaterThan … where x.age > ?1
GreaterThanEqual >= findByAgeGreaterThanEqual … where x.age >= ?1
After > findByStartDateAfter … where x.startDate > ?1
Before < findByStartDateBefore … where x.startDate < ?1
IsNull is null findByAgeIsNull … where x.age is null
NotNull is not null findByAge(Is)NotNull … where x.age not null
Like like findByFirstnameLike … where x.firstname like ?1
NotLike not like findByFirstnameNotLike … where x.firstname not like ?1
StartingWith like ‘xxx%’ findByFirstnameStartingWith … where x.firstname like ?1(parameter bound with appended %)
EndingWith like ‘xxx%’ findByFirstnameEndingWith … where x.firstname like ?1(parameter bound with prepended %)
OrderBy order by OrderByCreatetimeDesc … where x.state= ?1 order by x.createtime desc
Not <> findByLastnameNot … where x.lastname <> ?1
In in() findByAgeIn(Collection ages) … where x.age in ?1
NotIn not in() findByAgeNotIn(Collection ages) … where x.age not in ?1
TRUE =true findByActiveTrue() … where x.active = true
FALSE =false findByActiveFalse() … where x.active = false

2. 举例说明

RecruitDao 代码

package com.tensquare.recruit.dao;import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;import com.tensquare.recruit.pojo.Recruit;import java.util.List;/*** recruit数据访问接口** @author Administrator*/
public interface RecruitDao extends JpaRepository<Recruit, String>, JpaSpecificationExecutor<Recruit> {// 查询状态为2并以创建日期降序排序,查询前4条记录 推荐职位查询public List<Recruit> findTop4ByStateOrderByCreatetimeDesc(String state);// 查询状态不为0 并以创建日期降序排序,查询前12条记录 最新职位查询public List<Recruit> findTop12ByStateNotOrderByCreatetimeDesc(String state);// 查询招聘信息地址在大望路的并且状态为2  And,Like应用查询public List<Recruit> findByAddressLikeAndState(String address,String state);}

RecruitService 代码

/*** recruit服务层** @author Administrator*/
@Service
@Transactional
public class RecruitService {@Autowiredprivate RecruitDao recruitDao;@Autowiredprivate IdWorker idWorker;/** 查询招聘信息地址在大望路的并且状态为2* */public List<Recruit> findAdressAndState() {List<Recruit> latestJobList = recruitDao.findByAddressLikeAndState("%大望路%", "2");return latestJobList;}/** 最新职位查询* */public List<Recruit> theLatestJob() {List<Recruit> latestJobList = recruitDao.findTop12ByStateNotOrderByCreatetimeDesc("0");return latestJobList;}/** 查询前四条推荐职位* */public List<Recruit> recommendPosition() {List<Recruit> tuijianList = recruitDao.findTop4ByStateOrderByCreatetimeDesc("2");return tuijianList;}}

RecruitController 代码

/*** recruit控制器层** @author Administrator*/
@RestController
@CrossOrigin
@RequestMapping("/recruit")
public class RecruitController {@Autowiredprivate RecruitService recruitService;/** 查询招聘信息地址在大望路的并且状态为2* */@RequestMapping(value = "/search/filterList", method = RequestMethod.GET)public Result findByAddressLikeAndState() {List<Recruit> recruits = recruitService.findAdressAndState();return new Result(true, StatusCode.OK, "查询成功", recruits);}/** 最新职位查询* */@RequestMapping(value = "/search/newlist", method = RequestMethod.GET)public Result theLatestJob() {List<Recruit> recruits = recruitService.theLatestJob();return new Result(true, StatusCode.OK, "查询成功", recruits);}/** 推荐职位查询* */@RequestMapping(value = "/search/recommend", method = RequestMethod.GET)public Result recommendPosition() {List<Recruit> recruits = recruitService.recommendPosition();return new Result(true, StatusCode.OK, "查询成功", recruits);}
}

3. 测试

按地址和状态查询:

最新职位查询

推荐职位查询

引用资料: https://blog.csdn.net/weixin_43094965/article/details/117203091

SpringBoot使用SpringDataJPA通过方法名查询相关推荐

  1. SpringBoot使用SpringDataJPA通过@Query注解多对多分页查询

    文章目录 SpringBoot使用JPA@Query注解查询 1. 环境配置 2. 数据库表配置 3. 实体类配置 4. Dao代码 5. Service 代码 6. Controller 代码 7. ...

  2. JPA 的查询,JPA 根据方法名字查询详细介绍

    摘自:https://www.sojson.com/blog/295.html 根据方法名字生成SQL语句(根据方法名查询). public interface UserRepository exte ...

  3. Spring JPA查询,JPA 根据方法名字查询详细介绍

    版权所属:SO JSON在线解析 原文地址:https://www.sojson.com/blog/295.html JPA  的查询有很多丰富的API,基本能满足了所有的基本查询.下面来想细说说支持 ...

  4. 关于JPA方法名创建自动查询

    JPA 的根据解析方法名称自动对接口进行实现的方法能节省大量的资源,以下对于解析规则进行列举哈 商品实体类 package com.dionren.zhaoxie.entity.trade;impor ...

  5. JpaRepository查询方法名规范

    JpaRepository的查询 直接在接口中定义查询方法,如果是符合规范的,可以不用写实现,目前支持的关键字写法如下:JpaRepository会对方法名进行校验 不符合规范会报错 除非添加@Que ...

  6. Python编程语言学习:python语言中快速查询python自带模块函数的用法及其属性方法、如何查询某个函数关键词的用法、输出一个类或者实例化对象的所有属性和方法名之详细攻略

    Python编程语言学习:python语言中快速查询python自带模块&函数的用法及其属性方法.如何查询某个函数&关键词的用法.输出一个类或者实例化对象的所有属性和方法名之详细攻略 ...

  7. springboot使用spring-data-jpa操作MySQL数据库

    我们在上一篇搭建了一个简单的springboot应用,这一篇将介绍使用spring-data-jpa操作数据库. 新建一个MySQL数据库,这里数据库名为springboot,建立user_info数 ...

  8. jpa oracle 传参int类型判空_springboot学习-springboot使用spring-data-jpa操作MySQL数据库...

    我们在上一篇搭建了一个简单的springboot应用,这一篇将介绍使用spring-data-jpa操作数据库. 新建一个MySQL数据库,这里数据库名为springboot,建立user_info数 ...

  9. Ajax实现简单用户名重名查询

    很早就想发布这篇POST了,Ajax实现简单用户名重名查询,引用了xmlhttprequest object pool,如下: XMLHttpRequest Object Pool /**  * XM ...

最新文章

  1. java 学到什么实习_我如何获得外展实习机会以及到目前为止所学到的知识
  2. 错过CVPR 2017?绝对不能错过GAIR大讲堂——上海交大专场开启报名
  3. linux pe大小,lvm中的pe默认是4M 最大能支持多大 1T?2T
  4. 病毒侵袭持续中(HDU-3065)
  5. directx修复工具v3.2增强版_「电脑知识」USBOS 超级PE启动维护工具增强版及标准版...
  6. 最详细全国区号汇总(json格式)
  7. 碎碎念集萃三零【静心】
  8. mac电脑如何快速清除excel表格中的空白行
  9. 睿智的目标检测21——如何调用摄像头进行目标检测
  10. 京东商城手机频道商品价格信息的抓取
  11. 2017江苏高职计算机分数线,2017—2019江苏高考招生投档分数线(体育高职专科院校).docx...
  12. 精神小伙: 写代码是世界上最好的工作, 不接受反驳
  13. 【转】我的助理辞职了!
  14. html5视频教程华清,华清创客学院—HTML5是否能代替Flash
  15. 将Delphi2007的所有dcu打包到一个运行时包中
  16. 传输加载优化(资源压缩、资源缓存、HTTP2)
  17. WinImage直接读取vmdk文件
  18. 深度学习与西储大学轴承数据集(二)
  19. 2021年高考 南宁二中成绩查询,2021年南宁高考各高中成绩及本科升学率数据排名及分析...
  20. 《构建之法》 第二次作业

热门文章

  1. 问题 B: 【计算几何】Two Circles and a Rectangle
  2. 基于KCOM3模块编写脚本控制电脑键盘鼠标,附控制软件
  3. oracle 数据库网络传输,Oracle数据库之间数据传输方法探讨
  4. java赵云主角兵器谱游戏_赵云赵子龙的外号有哪些?赵云的武器是什么 赵
  5. 直流有刷电机编码器测速基于STM32F302R8+X-NUCLEO-IHM07M1
  6. 第八届“图灵杯”NEUQ—ACM程序设计竞赛个人赛(同步赛)
  7. threejs基础下:贴图资源加载与光照
  8. MySQL语句查询数据库数据并添加到Redis缓存
  9. win10清理C盘空间
  10. android 复制asset文件下文件到手机指定路径,手机根目录