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

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

  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

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

本文主题:

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

关于作者
上天我不能,入地我不愿,我只能徘徊于天地之间。生当夏花,死而无憾!
相关文章
解JavaScript中splice()方法,有Demo详细介绍
Elasticsearch 教程,Elasticsearch 日期查询解,Elasticsearch Date 查询Java API
Elasticsearch教程 ,Elasticsearch count 查询,Elasticsearch 查询是否存在
Elasticsearch教程(九) elasticsearch 查询数据 | 分页查询
IP地址查询,IP定位,IP纯真数据查询
好用的区号查询工具 | 所在地区号查询
Druid数据库配置详细介绍。网上一团糟。
公安局网站备案信息查询API,免费查询公安网备 API 代码说明
whois查询是什么?它有哪些作用?
如何查询自己的邮政编码?
最新文章
Linux I/O重定向 331
Ruby 循环 - while、for、until、break、redo 和 retry 289
Node.js:全局对象 243
如何使用终端检查Linux上的内存使用情况 253
JavaScript对象详细剖析 133
Python print() 函数 220
PHP if/else/elseif 语句 193
HTML5 Canvas弧线教程 184
Java赋值运算符 239
XML内部实体和外部实体 293
最热文章
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 684487
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 674918
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 605805
免费天气API,天气JSON API,不限次数获取十五天的天气预报 594564
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 554321
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 509756
Elasticsearch教程(四) elasticsearch head 插件安装和使用 480503
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 266629
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 244463
Elasticsearch教程(一),全程直播(小白级别) 226141
支付扫码

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

查看我的收藏

正在加载... ...