SpringData Jpa 之 Example 查询

spring-data-jpa-example:Spring Data JPA 示例 spring-data-jpa-example 使用 spring 数据 JPA 的简单应用程序示例。 安装指南 安装 Java jdk 1.8 安装 Maven 3.x 设置环境变量 JAVA_HOME 设置环境变量 MAVEN_HOME 将 JAVA_HOME\bin 和 MAVEN_HOME\bin 放在环境变量 Path 上 克隆应用:git clone 在项目根文件夹上执行“mvn install” 在根文件夹上执行“mvn tomcat7:run -P tomcat”以运行应用程序 转到 立即下载

一、简介

​ 按例查询(Query By Example)是一种用户界面友好的查询技术。 它允许 动态创建 查询,并且不需要编写包含字段名称的查询。 实际上,按示例查询 不需要 使用特定的数据库的查询语言来编写查询语句。

1、按例查询(QBE)由三部分组成:

  • Probe:带有填充字段的域对象的实际示例(即 实体)
  • ExampleMatcher:ExampleMatcher 提供关于如何匹配特定字段的详细信息,它可以跨多个示例重用
  • Example:示例包括 Probe 和 ExampleMatcher ,它用于创建查询

2、优势:

  • 使用一组静态或动态约束查询数据存储
  • 可以频繁地重构域对象,而不用担心破坏现有的查询
  • 独立于底层数据存储 API 工作

3、限制:

  • 不支持嵌套或分组属性约束 firstname = ?0 or (firstname = ?1 and lastname = ?2)

  • 只支持字符串的 starts/contains/ends/regex 匹配和其他属性类型的精确匹配

    即不支持查询 时间段 、数组范围 等条件

二、使用

1、构建简单的 Example:

Person person = new Person();                         
person.setFirstname("Dave");                          

Example<Person> example = Example.of(person);  // 此处未构建自定义匹配规则,使用的是默认匹配规则

2、实现 QueryByExampleExecutor 接口,并执行查询:

public interface QueryByExampleExecutor<T> {

  <S extends T> S findOne(Example<S> example);

  <S extends T> Iterable<S> findAll(Example<S> example);

  // … more functionality omitted.
}
public interface PersonRepository extends JpaRepository<Person, String> { … }

public class PersonService {

  @Autowired PersonRepository personRepository;

  public List<Person> findPeople(Person probe) {
    return personRepository.findAll(Example.of(probe));
  }
}

3、ExampleMatcher 的匹配规则:

一个 ExampleMatcher 示例:

ExampleMatcher matcher = ExampleMatcher.matching()
  .withMatcher("name", match -> match.endsWith())  // name like %?0
  .withMatcher("address", match -> match.startsWith());  // address like ?0%
  // 使用方法引用设置匹配规则
  .withMatcher("sex", ExampleMatcher.GenericPropertyMatcher::contains)  // sexlike %?%
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l3PmOxMj-1606200565478)(C:\Users\ZhuXY\AppData\Roaming\Typora\typora-user-images\image-20201124144008660.png)]

408——计算机组成原理(持续更新) 小数点前的0代表正数,1代表负数。 阅读详情

相关推荐

ZynqMP多核实战:如何让A53-0跑Linux,其他核裸机处理大数据(附完整配置流程)

本文详细解析了Xilinx ZynqMP多核异构计算实战,重点介绍如何配置A53-0运行Linux系统,同时让其他A53和R5核心以裸机方式处理大数据任务。内容涵盖内存划分、核间通信、Linux定制配置等关键技术,提供完整的配置流程和性能优化方案,助力开发者实现高效的多核协同开发。

weixin_30555125的博客 480

JPA--动态查询--Example

其他网址

IT利刃出鞘的博客 1万+

Grafana企业版vs开源版:从安装到插件管理的完整对比实测(含离线部署技巧)

本文深入对比Grafana企业版与开源版在安装流程、插件管理和功能限制等方面的差异,特别针对离线部署场景提供实用技巧。通过实测数据源支持、权限管理等核心功能,帮助企业用户做出明智选择,同时详细介绍离线安装和插件签名验证等关键操作。

weixin_29313817的博客 107

springdata jpa使用Example快速实现动态查询

Example官方介绍 Query by Example (QBE) is a user-friendly querying technique with a simple interface. It allows dynamic query creation and does not require to write queries containing field names. In fac...

一号搬砖手的博客 9万+

UE4项目迁移指南:如何无缝导入外部.uasset文件并保持材质关联

本文详细解析了将外部.uasset文件无缝导入UE4项目的专业方法。针对手动复制文件时常见的材质关联丢失问题,提供了使用引用查看器进行诊断和修复的实用技巧,并推荐使用引擎内置的“迁移”功能确保资源依赖关系的完整性,帮助开发者高效整合项目资源。

t8u9v0的博客 1046

echarts的坐标轴处理算法

参考原文:https://www.cnblogs.com/vicky-li/p/11653415.html。2、可用于双轴的情况,指定splitNumber,保证左右两边的线没有交叉显示的情况。1、设置echarts显示的最大最小值,让数据显示比较有起伏。处理echarts的一些问题。

HYeeee的博客 801

别再拼sql了,JPA中还可以使用这几种查询方式

JPA几种查询方式,Example、Specification、Criteria

园区阿祖的博客 1540

看完这篇爽文我终于学会了示波器(一)

示波器基础篇的介绍,希望对你有用,下次分享一下如何测试。

qq_45508321的博客 974

Spring Data JPA进阶(四):Example查询

Example查询翻译过来叫“按例查询(QBE)”。是一种用户界面友好的查询技术。 它允许动态创建查询,并且不需要编写包含字段名称的查询。 而且按示例查询不需要使用特定的数据库的查询语言来编写查询语句。 官方文档有一个优劣势的说明: 优势: 可以使用动态或者静态的限制去查询 在重构你的实体的时候,不用担心影响到已有的查询 可以独立地工作在数据查询API之外 劣势: 不支持组合查询,比如:fi...

程铭程铭你快成名的博客 1万+

Arduino+esp8266+blinker物联网开发

文章目录blinker点灯一.简介二.开发环境的搭建1.arduino的安装2.添加esp8266开发板3. blinker库的导入4.驱动的安装4.手机端安装app三.开发第一个点灯程序1.添加设备2.载入示例3.代码部分4.代码讲解5.程序烧写四.总结 blinker点灯 一.简介 为了加深为物联网知识的认识,今天就教大家如何用手机app来控制我们的开发板。我们的开发环境是以arduino I...

weixin_45631738的博客 3万+

从Peer到脉冲地震波:免费Python工具全流程配置教程(PyCharm+Anaconda)

本文详细介绍了如何使用Python工具链(PyCharm+Anaconda)实现从Peer数据库获取地震波数据到生成脉冲地震波的全流程配置。通过开源工具EQTOOL和PySeismicGen,结合Python环境搭建、数据格式转换和脉冲地震动生成技术,为结构抗震分析提供高效、灵活的解决方案。

weixin_29093169的博客 431

springdata jpa Example、Pageable分页查询使用

springdata jpa Example、Pageable分页查询使用 ExampleMatcher实例查询三要素 实体对象:在ORM框架中与Table对应的域对象,一个对象代表数据库表中的一条记录,如上例中User对象,对应user表。在构建查询条件时,一个实体对象代表的是查询条件中的“数值”部分。如:要查询姓“X”的客户,实体对象只需要存储条件值“X”。 匹配器:Examp...

你当像鸟飞往你的山~~ 5319

uniapp - 解决uni.getLocation定位不准有偏差,定位经纬度不准确有几百米误差、获取地图定位有偏差怎么办,已配置高精确度但依旧不精准(uni.getLocation定位不准如何解决)

uni.getLocation,获取当前的地理位置、速度。已经设置altitude高精度,uniapp API获取定位有差异问题解决,获取定位有几百米偏差,uni.getLocation(OBJECT)中使用默认type ”wgs84“会导致定位不准的问题,gcj02,uni.getLocation地图定位不准,获取经纬度错误偏移了几十公里,经纬度的精确度误差,怎么消除经纬度偏差,解决 uniapp uni.getLocation 定位经纬度不准问题,使用定位不准,定位不准误差问题,解决定位不准问题,高德地

✅ 精选推荐文章 1万+

SpringBoot结合SpringData Jpa--Example查询

承接上篇博客:https://blog.youkuaiyun.com/qq_33608923/article/details/102840505 QueryByExampleExecutor 首先,我们使UserRepository继承JpaRepositoryImplementation这个接口: import com.github.jpa.demo.entity.User; import org.spri...

qq_33608923的博客 1156

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

springdata JPA详解 example查询

https://www.cnblogs.com/rulian/p/6533109.html 这个博主据绝对是个天使!   example 实例查询,顾名思义,就是通过一个例子来查询。要查询的是Customer对象,查询条件也是一个Customer对象,通过一个现有的客户对象作为例子,查询和这个例子相匹配的对象。 1、无匹配器的情况 要求:查询地址是“河南省郑州市”,且重点关注的客户。 说明...

qq_39592670的博客 1527

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

JAVA编程132——springdata JPA使用Example快速实现动态查询

/** * 条件-模糊-分页查询 * @param page * @param rows * @Auther: Mollen * @return */ @Override public Page&amp;lt;Courier&amp;gt; pageQuery(int page, int rows,Employee employee)...

mollen的博客 1150

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

SpringData MongoDB的自定义条件查询

Dao中定义下面的接口: /** * CmsPage:模型类型。 * Sting:代表的是主键ID的类型。 * @Description TODO * @Author Mr.Wu * @Date 2019/7/24 19:23 * @Version 1.0 **/ public interface CmsPageRepository extends MongoRepository&l...

weixin_42030357的博客 1668

Spring Data JPA 总结

核心概念:Spring Data 存储库抽象中的中央接口是Repository【存储库的意思】,它将域类以及域类的ID类型作为类型参数进行管理,此接口用作标记接口,它就是爸爸,下面展示一下接口结构图 里面印象最深的就是CurdRepository接口,只要是入门基本上都是从这个接口入门的,就是进行简单的增删改查的操作。 注意点得话应该就是其中得save()方法 和JpaRepository...

Mr_ZhangAdd的博客 763

Spring JPA 随手记

Spring Data -Specification用法 入门例子 controller层,这里是个简单查询获取所有用户并分页 @GetMapping("/list") @ApiOperation(value = "所有用户列表") public Result list(@RequestParam Map<String, Object> params) { Page page = userService.queryPage(params); ...

Rebirth 重生 617

JPA排序 分页 条件查询 选择更新

package com.hy.jpa; import com.hy.jpa.entity.User; import com.hy.jpa.repository.UserRepository; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest;

遭不住啊 335

Spring Data JPA 从入门到精通~QueryByExampleExecutor的使用

QueryByExampleExecutor 的使用 按示例查询(QBE)是一种用户友好的查询技术,具有简单的接口,它允许动态查询创建,并且不需要编写包含字段名称的查询。从 UML 图中,可以看出继承 JpaRepository 接口后,自动拥有了按“实例”进行查询的诸多方法,可见 Spring Data 的团队已经认为了 QBE 是 Spring JPA 的基本功能了,继承 QueryByExampleExecutor 和继承 JpaRepository 都会有这些基本方法,所以 QueryByExa.

小强快跑~~ 2902

SpringBoot-Spring Data Jpa使用(一)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33943836的博客 169
上一篇: Spring Data JPA 中 getOne、findById、findOne 的区别
下一篇: HashMap源码 之 get() 相关方法
☞十一
博客等级 码龄9年 8粉丝 57原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值