Spring-Data JPA方法命名规则查询~

2,875 阅读2分钟

「这是我参与2022首次更文挑战的第22天,活动详情查看:2022首次更文挑战

方法命名规则查询

自定义查询概述

Spring Data JPA可以根据接口方法名来实现数据库操作,主要的语法是findXXBy、readAXXBy、queryXXBy、countXXBy、getXXBy后面跟属性名称,利用这个功能仅需要在定义的Repository中添加对应的方法名即可,使用时Spring Boot会自动帮我们实现。

顾名思义,方法命名规则查询就是根据方法的名字,就能创建查询。只需要按照Spring Data JPA提供的方法命名规则定义方法的名称,就可以完成查询工作。Spring Data JPA在程序执行的时候会根据方法名称进行解析,并自动生成查询语句进行查询

按照Spring Data JPA 定义的规则,查询方法以findBy开头,涉及条件查询时,条件的属性用条件关键字连接,要注意的是:条件属性首字母需大写。框架在进行方法名解析时,会先把方法名多余的前缀截取掉,然后对剩下部分进行解析。

具体的关键字,使用方法和生产成SQL如下表所示

image.png

image.png

常用规则关键字
And并且
Or
Is,Equals等于
Between两者之间
LessThan小于
LessThanEqual小于等于
GreaterThan大于
GreaterThanEqual大于等于
After之后(时间) >
Before之前(时间) <
IsNull等于Null
IsNotNull,NotNull不等于Null
Like模糊查询。查询件中需要自己加 %
NotLike不在模糊范围内。查询件中需要自己加 %
StartingWith以某开头
EndingWith以某结束
Containing包含某
OrderBy排序
Not不等于
In某范围内
NotIn某范围外
True
False
IgnoreCase忽略大小写

代码示例:

  • 根据客户名称查询客户
    Customer findByCustName(String custName);

也可以加一些关键字And、Or、Like

  • 根据客户名称或者id查询客户
    Customer findByCustNameOrCustId(String custName);
  • 根据客户名称模式查询客户
    Customer findBCustNameLike(String custName);

修改、删除等也是类似语法:

  • 通过客户名称删除客户
    Customer deleteByCustName(String custName);

OK!明天继续加油!