Spring-Data-JPA 自定义查询方法底层如何处理

public interface UserDao extends JpaRepository{

        //自定义查询
/**
* 方法签名已经告诉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  findByNameIsLike(String name);

      /**
     * 功能:查询大于或等于参数为年龄的集合
     * 
     * findByAgeIsGreaterThanEqual:中断言为Age属性也就是查询的查询,限制条件是IsGreaterThanEqual大于或等于
     */
    List findByAgeIsGreaterThanEqual(Integer age);
     /**
      * 功能:通过id降序排列
      * 不能写成findByIdOrderByDesc:这样写的话,是通过id查询对象集合,并且结果以id的降序排列
      */
    List findByOrderByIdDesc();

}

以下来自官方手册:

Spring-Data-JPA 自定义查询方法底层如何处理_第1张图片

Spring-Data-JPA 自定义查询方法底层如何处理_第2张图片

Spring-Data-JPA 自定义查询方法底层如何处理_第3张图片

 

                                                                               微信公众号: 

                                               Spring-Data-JPA 自定义查询方法底层如何处理_第4张图片

                                                                             JAVA程序猿成长之路

                          分享资源,记录程序猿成长点滴。专注于Java,Spring,SpringBoot,SpringCloud,分布式,微服务。 

你可能感兴趣的:(spring-data-jpa)