方法的查询策略设置

通过下面的命令来配置方法的查询策略:

@EnableJpaRepositories(queryLookupStrategy= QueryLookupStrategy.Key.CREATE_IF_NOT_FOUND)

其中,QueryLookupStrategy.Key 的值一共就三个:

  • Create:直接根据方法名进行创建,规则是根据方法名称的构造进行尝试,一般的方法是从方法名中删除给定的一组已知前缀,并解析该方法的其余部分。如果方法名不符合规则,启动的时候会报异常。
  • USE_DECLARED_QUERY:声明方式创建,即本书说的注解的方式。启动的时候会尝试找到一个声明的查询,如果没有找到将抛出一个异常,查询可以由某处注释或其他方法声明。
  • CREATE_IF_NOT_FOUND:这个是默认的,以上两种方式的结合版。先用声明方式进行查找,如果没有找到与方法相匹配的查询,那用 Create 的方法名创建规则创建一个查询。

除非有特殊需求,一般直接用默认的,不用管。以 Spring Boot 项目为例,更改其配置方法如下:

@EnableJpaRepositories(queryLookupStrategy= QueryLookupStrategy.Key.CREATE_IF_NOT_FOUND)
public class Example1Application {public static void main(String[] args) {SpringApplication.run(Example1Application.class, args);}
}

QueryLookupStrategy 是策略的定义接口,JpaQueryLookupStrategy 是具体策略的实现类,类图如下:

Spring Data JPA 从入门到精通~方法的查询策略设置相关推荐

  1. Spring Data JPA 从入门到精通~方法的查询策略的属性表达式

    方法的查询策略的属性表达式(Property Expressions) 属性表达式只能引用托管(泛化)实体的直接属性,如前一个示例所示.在查询创建时,已经确保解析的属性是托管实体的属性,但是,还可以通 ...

  2. Spring Data JPA 从入门到精通~@Modifying修改查询

    学习思路一样,我们先看源码: public @interface Modifying { //如果配置了一级缓存,这个时候用clearAutomatically=true,就会刷新hibernate的 ...

  3. Spring Data JPA 从入门到精通~JpaSpecificationExecutor的使用方法

    JpaSpecificationExecutor 源码和 API 我们也可以通过 idea 工具详细看其用法和实现类,JpaSpecificationExecutor 是 Repository 要继承 ...

  4. Spring Data JPA 从入门到精通~@Version处理乐观锁的问题

    @Version 处理乐观锁的问题 @Version 乐观锁介绍 我们在研究 Auditing 的时候,发现了一个有趣的注解 @Version,源码如下: package org.springfram ...

  5. spring data jpa从入门到精通_Spring Data JPA的简单入门

    前言 spring data JPA是spring团队打造的sping生态全家桶的一部分,本身内核使用的是hibernate核心源码,用来作为了解java持久层框架基本构成的样本是再好不过的选择.最近 ...

  6. Spring Data JPA 从入门到精通~Naming命名策略详解及其实践

    Naming 命名策略详解及其实践 用 JPA 离不开 @Entity 实体,我都知道实体里面有字段映射,而字段映射的方法有两种: 显式命名:在映射配置时,设置的数据库表名.列名等,就是进行显式命名, ...

  7. Spring Data JPA 从入门到精通~默认数据源的讲解

    默认数据源 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://1 ...

  8. Spring Data JPA 从入门到精通~Auditing及其事件详解

    Auditing 及其事件详解 Auditing 翻译过来是审计和审核,Spring 的优秀之处在于帮我们想到了很多繁琐事情的解决方案,我们在实际的业务系统中,针对一张表的操作大部分是需要记录谁什么时 ...

  9. Spring Data JPA 从入门到精通~实际工作的应用场景

    在实际工作中,有哪些场景会用到自定义 Repository 呢,这里列出几种实际在工作中的应用案例. 1. 逻辑删除场景 可以用到上面说的两种实现方式,如果有框架级别的全局自定义 Respositor ...

最新文章

  1. 单链表-删除重复节点(递增链表)
  2. java_泛型 TreeSet 判断hashcode/length(升序排列)
  3. 大数据分析-裙子颜色蓝黑还是白金是怎么炒作起来的?
  4. java oom dump_Java OOM 内存溢出分析
  5. 天翼云从业认证(4.2)网站建设实战
  6. 50 亿观众的 “云上奥运”,顶级媒体背后的数智化力量
  7. java excel条件格式_Java 设置Excel条件格式(高亮条件值、应用单元格值/公式/数据条等类型)...
  8. 浏览器解析JavaScript的原理
  9. HTML5 API详解(14):Notification 实现桌面提醒
  10. 简洁的网页跑丢了动态动画404页面源码
  11. 对中职计算机教学的思考,中职计算机教学思考
  12. python调用库函数用ecb模式加密图片_python 实现AES加密解密(ECB模式,配合base64)...
  13. 怎样制作网吧服务器,网吧游戏服务器制作的过程是怎样的
  14. 使用generator自动生成Mybatis映射配置文件
  15. python 数学公式显示_python 数学公式·
  16. 小程序转发功能(类似于美团红包转发功能)的简单实现
  17. oeasy教您玩转vim - 88 - # 自动命令autocmd
  18. 让你搞懂 administrator最高权限
  19. stata学习笔记|基本知识
  20. 计算机网络基础(理论知识全)

热门文章

  1. 会议交流 | 人工智能与机器学习创新峰会 - 知识图谱与图神经网络分会
  2. 基于 CNN 的中文对话情感分析
  3. 如何开发小程序开发者工具?
  4. Reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are
  5. python 经典排序算法
  6. 翻译连载 | 附录 A:Transducing(下)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇...
  7. PHP获取本月起始和终止时间戳
  8. 五大原则让你的代码不再受bug的困扰
  9. ipython 学习笔记 2 network graph--NetworkX
  10. 01-08-02【Nhibernate (版本3.3.1.4000) 出入江湖】二级缓存:NHibernate自带的HashtableProvider...