您的位置:首页 > 编程语言 > Java开发

Spring Data Jpa 查询操作的基本实现(Spring Data Jpa 2)

2016-10-27 15:13 776 查看

基于方法名解析的概念

  JpaRepository支持接口规范方法名查询。意思是如果在接口中定义的查询方法符合它的命名规则,就可以不用写实现。

  例如: findByName这个方法表示从数据库中查询Name这个属性等于XXX的所有记录,类似于SQL语句: select* from xxTable where name=xxx 这种形式

  这段话有两个重点:

方法名需要在接口中设定

必须符合一定的命名规范

查询操作的基本实现 —方法名构造方法

find+全局修饰+By+实体的属性名称+限定词+连接词+ …(其它实体属性)+OrderBy+排序属性+排序方向

例如:

findDistinctByFirstNameIgnoreCaseAndLastNameOrderByAgeDesc(String
firstName,String lastName){......}


其中: Distinct是全局修饰(非必须), FirstName和LastName是实体的属性名,

And是连接词, IgnoreCase是限定词, Age是排序属性, Desc是排序方向,限定词

和连接词统称为“ 关键词”



JpaRepository常用接口方法:

delete删除或批量删除

findAll查找所有

findOne查找单个

save保存单个或批量保存

saveAndFlush保存并刷新到数据库

目前支持的关键词

常用词如下:

全局修饰:
Distinct, Top, First
关键词:
IsNull, IsNotNull, Like, NotLike, Containing, In, NotIn,
IgnoreCase, Between, Equals, LessThan, GreaterThan, After, Before...

排序方向:
Asc, Desc
连接词:
And, Or


更多关键词请查看官方在线文档:

http://docs.spring.io/spring-data/jpa/docs/1.7.2.RELEASE/reference/html/

嵌套实体方法命名规则

构词法:主实体中子实体的名称+ _ +子实体的属性名称

例如: List findByAddress_ZipCode(ZipCode zipCode)

表示查询所有 Address(地址)的zipCode(邮编)为指定值的所有Person(人员)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jpa