Spring Data JPA 从入门到精通~方法的查询策略设置
方法的查询策略设置
通过下面的命令来配置方法的查询策略:
@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 从入门到精通~方法的查询策略设置相关推荐
- Spring Data JPA 从入门到精通~方法的查询策略的属性表达式
方法的查询策略的属性表达式(Property Expressions) 属性表达式只能引用托管(泛化)实体的直接属性,如前一个示例所示.在查询创建时,已经确保解析的属性是托管实体的属性,但是,还可以通 ...
- Spring Data JPA 从入门到精通~@Modifying修改查询
学习思路一样,我们先看源码: public @interface Modifying { //如果配置了一级缓存,这个时候用clearAutomatically=true,就会刷新hibernate的 ...
- Spring Data JPA 从入门到精通~JpaSpecificationExecutor的使用方法
JpaSpecificationExecutor 源码和 API 我们也可以通过 idea 工具详细看其用法和实现类,JpaSpecificationExecutor 是 Repository 要继承 ...
- Spring Data JPA 从入门到精通~@Version处理乐观锁的问题
@Version 处理乐观锁的问题 @Version 乐观锁介绍 我们在研究 Auditing 的时候,发现了一个有趣的注解 @Version,源码如下: package org.springfram ...
- spring data jpa从入门到精通_Spring Data JPA的简单入门
前言 spring data JPA是spring团队打造的sping生态全家桶的一部分,本身内核使用的是hibernate核心源码,用来作为了解java持久层框架基本构成的样本是再好不过的选择.最近 ...
- Spring Data JPA 从入门到精通~Naming命名策略详解及其实践
Naming 命名策略详解及其实践 用 JPA 离不开 @Entity 实体,我都知道实体里面有字段映射,而字段映射的方法有两种: 显式命名:在映射配置时,设置的数据库表名.列名等,就是进行显式命名, ...
- Spring Data JPA 从入门到精通~默认数据源的讲解
默认数据源 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://1 ...
- Spring Data JPA 从入门到精通~Auditing及其事件详解
Auditing 及其事件详解 Auditing 翻译过来是审计和审核,Spring 的优秀之处在于帮我们想到了很多繁琐事情的解决方案,我们在实际的业务系统中,针对一张表的操作大部分是需要记录谁什么时 ...
- Spring Data JPA 从入门到精通~实际工作的应用场景
在实际工作中,有哪些场景会用到自定义 Repository 呢,这里列出几种实际在工作中的应用案例. 1. 逻辑删除场景 可以用到上面说的两种实现方式,如果有框架级别的全局自定义 Respositor ...
最新文章
- 单链表-删除重复节点(递增链表)
- java_泛型 TreeSet 判断hashcode/length(升序排列)
- 大数据分析-裙子颜色蓝黑还是白金是怎么炒作起来的?
- java oom dump_Java OOM 内存溢出分析
- 天翼云从业认证(4.2)网站建设实战
- 50 亿观众的 “云上奥运”,顶级媒体背后的数智化力量
- java excel条件格式_Java 设置Excel条件格式(高亮条件值、应用单元格值/公式/数据条等类型)...
- 浏览器解析JavaScript的原理
- HTML5 API详解(14):Notification 实现桌面提醒
- 简洁的网页跑丢了动态动画404页面源码
- 对中职计算机教学的思考,中职计算机教学思考
- python调用库函数用ecb模式加密图片_python 实现AES加密解密(ECB模式,配合base64)...
- 怎样制作网吧服务器,网吧游戏服务器制作的过程是怎样的
- 使用generator自动生成Mybatis映射配置文件
- python 数学公式显示_python 数学公式·
- 小程序转发功能(类似于美团红包转发功能)的简单实现
- oeasy教您玩转vim - 88 - # 自动命令autocmd
- 让你搞懂 administrator最高权限
- stata学习笔记|基本知识
- 计算机网络基础(理论知识全)
热门文章
- 会议交流 | 人工智能与机器学习创新峰会 - 知识图谱与图神经网络分会
- 基于 CNN 的中文对话情感分析
- 如何开发小程序开发者工具?
- Reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are
- python 经典排序算法
- 翻译连载 | 附录 A:Transducing(下)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇...
- PHP获取本月起始和终止时间戳
- 五大原则让你的代码不再受bug的困扰
- ipython 学习笔记 2 network graph--NetworkX
- 01-08-02【Nhibernate (版本3.3.1.4000) 出入江湖】二级缓存:NHibernate自带的HashtableProvider...