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

基于方法名解析的概念

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

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

  这段话有两个重点:

  1. 方法名需要在接口中设定
  2. 必须符合一定的命名规范

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

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

例如:

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

其中: Distinct是全局修饰(非必须), FirstName和LastName是实体的属性名,
And是连接词, IgnoreCase是限定词, Age是排序属性, Desc是排序方向,限定词
和连接词统称为“ 关键词”

Spring Data Jpa 查询操作的基本实现(Spring Data Jpa 2)_第1张图片


JpaRepository常用接口方法:

  • delete删除或批量删除

  • findAll查找所有

  • findOne查找单个

  • save保存单个或批量保存

  • saveAndFlush保存并刷新到数据库


目前支持的关键词

常用词如下:

全局修饰: 
    Distinct, TopFirst
关键词: 
    IsNull, IsNotNull, Like, NotLike, Containing, In, NotIn,
IgnoreCase, Between, Equals, LessThan, GreaterThan, AfterBefore...

排序方向: 
    Asc, Desc
连接词: 
    AndOr

更多关键词请查看官方在线文档:
http://docs.spring.io/spring-data/jpa/docs/1.7.2.RELEASE/reference/html/


嵌套实体方法命名规则

构词法:主实体中子实体的名称+ _ +子实体的属性名称
例如: List findByAddress_ZipCode(ZipCode zipCode)
表示查询所有 Address(地址)的zipCode(邮编)为指定值的所有Person(人员)

你可能感兴趣的:(java开发)