Spring Boot -- Spring Data Jpa(2)
来源:互联网 发布:和服羽织淘宝 编辑:程序博客网 时间:2024/06/06 00:43
方法名中支持的关键字
属性表达式
- 在进行方法名解析时,会先将方法名多余的前缀移除,比如find,findBy,read,readBy,get,getBy,然后对剩下的部分进行解析.
- findByAddressZipCode(),框架在解析方法时,先剔除findBy,然后对AddressZipCode进行解析.
1). Jpa会先判断在判断实体类中是否存在addressZipCode属性.如果存在,则进行where x.addressZipCode = ?1查询.
2). 若不存在,则从右边开始将字符串按”驼峰”命名的规则将其分为两部分,然后企图查找对应的属性.即一开始分为addressZip和code,然后查找实体类中是否存在addressZip对象属性,且addressZip类中是否存在code属性.若存在,则进行where x.addressZip.zone = ?1查询.
3). 若addressZip与code不存在,则继续拆分为address与zipCode,查找实体类中是否存在address对象属性以及address对象中是否存在zipCode.若存在,进行where x.address.zipCode查询.
4). 若address存在,zipCode不存在,则继续拆分,address中是否存在zip,zip中是否存在code,以where x.address.zip.code = ?1查询.
5). 若都不存在,则在编译时将报错.
6). 可以使用findByAddress_ZipCode进行定义解析方式.即x.address.zipCode
7). 如果实体类的属性过于复杂,不建议使用方法名衍生查询的方法.
Result Query
去重复
List<Employee> findDistinctByFirstname(String name);
可以使用findDistinctBy对查询结果去重复.将生成查询语句
select distinct ... from Entity x where x.firstname=?1
限制个数
User findFirstByOrderByLastnameAsc()User findTopByOrderByAgeDesc();List<User> findFirst10ByLastname(String lastname);List<User> findTop10ByLastname(String lastname);
可以使用First或Top来限制返回的结果数,如果First与Top后面没跟数字,则默认为1
分页
Page<Employee> findAll(Page page);
在参数中加入Pageable对象,即可对返回值自动进行分页,返回值将更改为Page<>
排序
List<Employee> findAll(Sort sort);Page<Employee> findAll(Page page,Sort sort);
在参数中加入Sort对象,即可对返回值进行排序
Count Query
Long countByAgeBetween(int age1,int age2);
以countBy开头的方法名,可以解析为计算个数语句.随后的属性表达式同findBy
Delete Query
Long deleteByFirstName(String firstName);
以deleteBy开头或removeBy的方法名,可以解析为删除语句.随后的属性表达式同findBy
阅读全文
0 0
- spring-boot-data-jpa
- Spring Boot -- Spring Data Jpa(2)
- Spring Boot 菜鸟教程 2 Data JPA
- Spring Boot+Spring Data JPA+Spring Cache
- spring boot集成data-jpa
- 从零开始学spring-boot(2)-集成spring-data-jpa
- 从零开始学spring-boot(2)-集成spring-data-jpa
- Spring Boot中使用Spring-data-jpa
- spring boot 使用spring data jpa
- spring boot 使用 spring data jpa
- Spring Boot中使用Spring-data-jpa
- spring boot and spring data jpa
- 《spring-boot学习》-07-spring data jpa
- spring boot中使用spring-data-jpa
- Spring Boot中使用Spring-data-jpa
- 初识spring boot和spring data jpa
- Spring Boot [组件学习-Spring Data JPA]
- Spring Boot集成Spring Data Jpa
- BP 维护客户信贷管理数据
- python
- Android Fragment白页解决方案
- 欢迎使用CSDN-markdown编辑器
- 智能语音质检系统如何做到深度跟踪分析客户
- Spring Boot -- Spring Data Jpa(2)
- 上下文切换
- ansible ssh免密碼登錄
- 阿里云服务器Linux(Ubuntu系统)安装tomcat以及外网访问详解
- jQuery 遍历 中 eq() 方法
- NTP协议与计算
- 优秀网页设计
- Android SDK下载安装及配置教程
- 简单的事件分发机制