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

JSON 2018-04-22 21:11:33 76659

  JPA  的查询有很多丰富的API,基本能满足了所有的基本查询。下面来想细说说支持的查询方式。


根据方法名字生成SQL语句(根据方法名查询)。

public interface UserRepository extends Repository<User, Long> {

  List<User> findByEmailAddressAndLastname(String emailAddress, String lastname);
}

我们将使用JPA criteria API创建一个查询,但本质上这转换为以下查询:

select u from User u where u.emailAddress = ?1 and u.lastname = ?2

Spring Data  JPA  将执行属性检查并遍历属性表达式中描述的嵌套属性。下面是  JPA  支持的关键字的概述,以及包含该关键字的方法的本质含义。

SQL关键词想细介绍

关键词 Demo JPQL 语句片段
And findByLastnameAndFirstname … where x.lastname = ?1 and x.firstname = ?2
Or findByLastnameOrFirstname … where x.lastname = ?1 or x.firstname = ?2
Is,Equals findByFirstname,
findByFirstnameIs,
findByFirstnameEquals
… where x.firstname = ?1
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 findByAgeIsNull … where x.age is null
IsNotNull,NotNull findByAge(Is)NotNull … where x.age not null
Like findByFirstnameLike … where x.firstname like ?1
NotLike findByFirstnameNotLike … where x.firstname not like ?1
StartingWith findByFirstnameStartingWith … where x.firstname like ?1 (parameter bound with appended %)
EndingWith findByFirstnameEndingWith … where x.firstname like ?1 (parameter bound with prepended %)
Containing findByFirstnameContaining … where x.firstname like ?1 (parameter bound wrapped in %)
OrderBy findByAgeOrderByLastnameDesc … where x.age = ?1 order by x.lastname desc
Not findByLastnameNot … where x.lastname <> ?1
In findByAgeIn(Collection<Age> ages) … where x.age in ?1
NotIn findByAgeNotIn(Collection<Age> age) … where x.age not in ?1
True findByActiveTrue() … where x.active = true
False findByActiveFalse() … where x.active = false
IgnoreCase findByFirstnameIgnoreCase … where UPPER(x.firstame) = UPPER(?1)

自己可以各种尝试。


版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/295.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
上天我不能,入地我不愿,我只能徘徊于天地之间。生当夏花,死而无憾!
相关文章
Spring JPA查询JPA 根据方法名字查询详细介绍
解JavaScript中splice()方法,有Demo详细介绍
Elasticsearch 教程,Elasticsearch 日期查询解,Elasticsearch Date 查询Java API
Elasticsearch教程 ,Elasticsearch count 查询,Elasticsearch 查询是否存在
Elasticsearch教程(九) elasticsearch 查询数据 | 分页查询
Druid数据库配置详细介绍。网上一团糟。
BlockingQueue 方法详细描述
IP地址查询,IP定位,IP纯真数据查询
公安局网站备案信息查询API,免费查询公安网备 API 代码说明
DNS TXT记录添加方法,ICP备案信息屏蔽查询处理方案讲解
最新文章
自媒体时代的贤内助——AI 视频云 4554
Golang 常见设计模式——装饰模式详细讲解 4309
Flink 在又拍云日志批处理中的实践 17475
个推异常值检测和实战应用-又拍云 4850
TCP 和 UDP协议详细讲解,优缺点分析讲解 15061
URL中乱七八糟的字符讲解,来源以及如何解决 10254
HTTP/3 来了,您真的了解它么? 9370
当我谈 HTTP 时,我谈些什么? 14607
新浪短链(t.cn)最新申请官方API的方法讲解。 78304
QUIC / HTTP3 协议详细分析讲解 12743
最热文章
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 671923
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 659640
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 579041
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 539810
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 506396
Elasticsearch教程(四) elasticsearch head 插件安装和使用 475844
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 241160
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 240852
谈谈斐讯路由器劫持,你用斐讯路由器,你需要知道的事情 220484
Elasticsearch教程(一),全程直播(小白级别) 218568
支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

查看我的收藏

正在加载... ...