Spring-Data-JPA 自定义查询方法底层如何处理
2018-03-02 20:05
1206 查看
public interface UserDao extends JpaRepository<User, Integer>{
//自定义查询
/**
* 方法签名已经告诉spring-data-jpa足够的信息来创建这个方法的实现了
* spring-data会检查Repository接口中所有的方法,解析方法的名称,并且基于
* 被持久化的对象来试图推测方法的目的。
*
* findUserByName 是如何映射的在springdata中的,springdata允许在方法名称使用四个动词:get,find,read
* 和count.其中get,find,read是同义的,这个是三个动词对应Repository方法都会查询数据并且
* 返回对象,而动词count则会返回匹配的对象数量,而不是对象本身。
*
* findUserByName方法非常简单,需要属性name来匹配查询User,springdata的处理也更加有意思,
* Repository方法有有个动词,一个可选的主题(Subject),关键词By以及一个断言所组成
*
* find是查询动词 User为主题 Name为断言,对于大多数场景主题是会省略的
*
* findUserByName中by后面的Name为断言也就是查询的参数,在断言中会有一个或多个限制结果的条件。如果没有就默认按照等于去查询。
*
*
*/
User findUserByName(String name);
/**
* 功能:通过姓名进行模糊查询集合
* 此时参数传递的形式为 "%李四%"
*/
List<User> findByNameIsLike(String name);
/**
* 功能:查询大于或等于参数为年龄的集合
*
* findByAgeIsGreaterThanEqual:中断言为Age属性也就是查询的查询,限制条件是IsGreaterThanEqual大于或等于
*/
List<User> findByAgeIsGreaterThanEqual(Integer age);
/**
* 功能:通过id降序排列
* 不能写成findByIdOrderByDesc:这样写的话,是通过id查询对象集合,并且结果以id的降序排列
*/
List<User> findByOrderByIdDesc();
}
以下来自官方手册:
//自定义查询
/**
* 方法签名已经告诉spring-data-jpa足够的信息来创建这个方法的实现了
* spring-data会检查Repository接口中所有的方法,解析方法的名称,并且基于
* 被持久化的对象来试图推测方法的目的。
*
* findUserByName 是如何映射的在springdata中的,springdata允许在方法名称使用四个动词:get,find,read
* 和count.其中get,find,read是同义的,这个是三个动词对应Repository方法都会查询数据并且
* 返回对象,而动词count则会返回匹配的对象数量,而不是对象本身。
*
* findUserByName方法非常简单,需要属性name来匹配查询User,springdata的处理也更加有意思,
* Repository方法有有个动词,一个可选的主题(Subject),关键词By以及一个断言所组成
*
* find是查询动词 User为主题 Name为断言,对于大多数场景主题是会省略的
*
* findUserByName中by后面的Name为断言也就是查询的参数,在断言中会有一个或多个限制结果的条件。如果没有就默认按照等于去查询。
*
*
*/
User findUserByName(String name);
/**
* 功能:通过姓名进行模糊查询集合
* 此时参数传递的形式为 "%李四%"
*/
List<User> findByNameIsLike(String name);
/**
* 功能:查询大于或等于参数为年龄的集合
*
* findByAgeIsGreaterThanEqual:中断言为Age属性也就是查询的查询,限制条件是IsGreaterThanEqual大于或等于
*/
List<User> findByAgeIsGreaterThanEqual(Integer age);
/**
* 功能:通过id降序排列
* 不能写成findByIdOrderByDesc:这样写的话,是通过id查询对象集合,并且结果以id的降序排列
*/
List<User> findByOrderByIdDesc();
}
以下来自官方手册:
相关文章推荐
- Spring data jpa HQL @Query 自定义查询及更新删除 及 sql写法
- Spring Data JPA 简单查询--方法定义规则(详解)
- Spring Data JPA 简单查询--方法定义规则
- Spring Data JPA: 为所有Repository添加自定义方法
- SpringBoot中使用Spring Data Jpa 实现简单的动态查询的两种方法
- spring data jpa 创建方法名进行简单查询
- 模糊查询:Spring Data JPA 如何进行模糊查询(LIKE) ?
- spring data jpa 创建方法名进行简单查询
- Spring Data JPA 查询方法支持的关键字
- Spring Data Jpa 自定义属性查询规则
- 基于JPA规范的spring-data-jpa面向对象的查询方法举例
- (十三)SpringBoot之Spring-Data-Jpa(二)CRUD实现以及添加自定义方法
- (十三)SpringBoot之Spring-Data-Jpa(二)CRUD实现以及添加自定义方法
- 【系统学习SpringBoot】再遇Spring Data JPA之JPA应用详解(自定义查询及复杂查询)
- Spring Data Jpa 查询返回自定义对象
- spring data jpa 自定义sql 左链接查询
- Spring Data JPA 自定义查询
- Spring Data Jpa 使用@Query标注自定义查询语句
- Spring-data-JPA查询方法的总结
- 关于Spring data JPA 如何使用条件查询。