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

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();

}

以下来自官方手册:

 

                                                                               微信公众号: 

                                               

                                                                             JAVA程序猿成长之路

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值