springData学习(五)JpaRepository和JpaSpecificationExecutor接口学习

解析JPA 仓库repository中的findAll()方法 1.源码 Page<T> findAll(@Nullable Specification<T> spec, Pageable pageable); (1) Specification spec 对象 (2) Pageable pageable 对象 下面是findAll()实现类 public Page<T> findAll(@Nullable Specifi... 阅读详情

1.JpaRepository接口中的主要方式有:

其实很以前的方法一样,我们主要学习一下findAll(Sort sort) 方法

@Test
	public void testFindAllSort() {
		Order order = new Order(Sort.Direction.DESC, "age");
		Sort sort = new Sort(order);
		List<Student> sList = studentJpa.findAll(sort);
		sList.forEach(System.out::println);
	}

2.JpaSpecificationExecutor接口

  • 不属于Repository体系,实现一组 JPA Criteria 查询相关的方法 
  • Specification:封装 JPA Criteria 查询条件。通常使用匿名内部类的方式来创建该接口的对象

在上文的基础上,在继承JpaSpecificationExecutor接口。

其中path的包为:javax.persistence.criteria.Path;

public interface StudentJpa extends JpaRepository<Student, Integer>, JpaSpecificationExecutor<Student>{

}

测试类:

/**
	 * 1  分页
	 * 2  排序
	 * 3  条件查询
	 */
	@Test
	public void testQuery() {
		
		
		Sort.Order order = new Sort.Order(Sort.Direction.ASC,"id");
		Sort sort = new Sort(order);

		Pageable pageable = new PageRequest(0, 4,sort);//分页条件
		
		Specification<Student> specification = new Specification<Student>() {

			@Override
			public Predicate toPredicate(Root<Student> root, 
					                     CriteriaQuery<?> query, 
										 CriteriaBuilder cb) {
				//root中包含了Student Student包含了score
				Path path = root.get("score");
				Predicate predicate = cb.gt(path, 5);
				return predicate;
			}
		};
		Page<Student> page = studentJpa.findAll(specification, pageable);
		System.out.println("查询的总页数"+page.getTotalPages());
		System.out.println("查询的总记录数"+page.getTotalElements());
		System.out.println("查询的当前第几页"+page.getNumber()+1);
		System.out.println("查询的当前页面的集合"+page.getContent());
		System.out.println("查询的当前页面的记录数"+page.getNumberOfElements());
	}

如果我们想同时搜索多个条件时:

比如搜索年龄19岁且分数为90的人员信息

@Test
	public void testQuery() {
		
		
		Sort.Order order = new Sort.Order(Sort.Direction.ASC,"id");
		Sort sort = new Sort(order);

		Pageable pageable = new PageRequest(0, 4,sort);//分页条件
		
		Specification<Student> specification = new Specification<Student>() {

			@Override
			public Predicate toPredicate(Root<Student> root, 
					                     CriteriaQuery<?> query, 
										 CriteriaBuilder cb) {
				//root中包含了Student Student包含了score
				Path path = root.get("score");
				Path path1 = root.get("age");
				Predicate p1 = cb.equal(path, 90);
				Predicate p2 = cb.equal(path1, 18);
				return cb.and(p1, p2);
			}
		};
		Page<Student> page = studentJpa.findAll(specification, pageable);
		System.out.println("查询的总页数"+page.getTotalPages());
		System.out.println("查询的总记录数"+page.getTotalElements());
		System.out.println("查询的当前第几页"+page.getNumber()+1);
		System.out.println("查询的当前页面的集合"+page.getContent());
		System.out.println("查询的当前页面的记录数"+page.getNumberOfElements());
	}

 

网易CodeWave智能生成应用实战:5分钟搞定库存管理系统(附详细配置截图) 本文详细介绍了如何利用网易CodeWave智能生成应用在5分钟内快速构建定制化库存管理系统。通过自然语言描述需求,无需编程即可生成包含产品管理、库存预警等核心功能的应用,并支持字段微调、业务流程注入等深度优化。文章附有详细配置截图,帮助用户高效实现数字化转型。 阅读详情

相关推荐

VisionMaster Qt二次开发:图像获取、COM组件渲染与本地化存储实战

本文详细介绍了基于VisionMaster进行Qt二次开发的核心实战流程,涵盖环境搭建、方案加载、图像数据获取、COM组件渲染与本地化存储。重点解析了如何通过COM组件在Qt界面中实时显示图像,以及将VM图像数据转换为QImage并保存为本地文件的关键步骤与常见问题,为工业视觉项目开发提供稳定高效的解决方案。

weixin_29229261的博客 205

SpringDataJPA之JpaRepository和JpaSpecificationExecutor接口

文章目录JpaRepository1.创建接口2.单元测试JpaSpecificationExecutor1.创建接口2.具体功能2.1 单条件查询2.2 多条件查询2.3 分页2.4 排序2.5 分页排序   本文我们来介绍下SpringDataJPA继承结构中剩下的两个接口 JpaRepository   JpaRepository 接口是我们开发时使用的最多的接口。其特点是可以帮助我们将其他...

波波烤鸭的博客 4478

niushop靶场漏洞查找-文件上传漏洞等(超详细)

发现报错,而且这个报错十分熟悉,与我们所学的sqli报错注入特别像。这里查询到后面的url有且仅有一个,目测估计是后台。上传的图片是包含一句话木马的图片。发现获取到了webshell。实战漏洞-niushop。

qq_59020256的博客 1727

Java教程:JPA如何使用Specification条件构造器查询复杂语句

第二十五弹,JPA如何使用Specification条件构造器查询复杂语句 自定义查询: 第一步:Dao层继承两个类 public interface ProcessBusinessNodeDao extends JpaRepository<ProcessBusinessNodePO, Integer>, JpaSpecificationExecutor<ProcessBusinessNodePO> { } 第二步,直接上源码: /** * 根据功能名称和业务id和发起.

wfeil211的博客 2186

Abaqus 2023 保姆级安装避坑指南:从环境变量到许可证配置,一次搞定

本文提供Abaqus 2023的详细安装指南,涵盖环境变量设置、许可证配置等关键步骤,帮助用户避开常见安装陷阱。通过系统环境检查、目录结构规划、许可证服务器安装及Java环境配置等实用技巧,确保顺利完成安装并优化软件性能。

weixin_42524276的博客 425

一文搞懂 RC Correlation Scale Factor 的生成与应用

pre-route 用的是统计估算模型,post-route 用的是详细布线提取,signoff 用的是第三方 QRC 或 StarRC——三个工具,三套参数体系,结果自然天差地别。不同 RC corner(rc_worst/rc_best/rc_typical)对应不同的工艺角和温度环境,每个 corner 的 R/C 偏差比例不同,必须分别生成和应用各自的 scale factor。别被名字骗了,这个工具专门干一件事——统计拟合两组 SPEF 之间的偏差,自动推荐最优 scaling factor。

weixin_47770727的博客 547

Java的JPA-Specification

Java的JPA-Specification

qq_41177135的博客 1079

AI编程助手Cursor如何革新经济学研究:从计量模型到可视化全流程实战

在数据科学和人工智能技术蓬勃发展的今天,如何高效地将前沿AI工具融入专业领域的研究工作流,成为提升科研效率的关键。其核心原理在于通过自然语言交互,将研究者的专业问题转化为机器可执行的指令,从而实现人机协作的范式转移。这一技术的核心价值在于大幅降低非计算机背景研究者的编程门槛,将精力从繁琐的代码实现中解放出来,更聚焦于学科本身的思想与逻辑。尤其在经济学、金融学等高度依赖数据分析和计量建模的领域,AI编程助手能够快速处理数据清洗、模型估计、可视化及结果解释等任务。具体到应用场景,研究者可以利用结构化提示词工程,

weixin_42531579的博客 296

Jpa列表Specification多条件查询

文章内容请戳,谢谢! http://zhangzeshan.top

zhangzeshan 1042

Microsemi Libero系列教程(二)——新建点灯工程

前言 上一篇文章,介绍了Microsemi Libero系列教程(一)-Libero开发环境介绍,下载,安装与注册,作为嵌入式开发中的Hello World,点灯是再也基础不过的实验了,通过点灯实验,可以了解芯片GPIO的控制和开发环境IDE新建工程的流程,对于FPGA来说,每个IO口几乎一样,所以本篇文章主要学习一下如何基于Microsemi Libero集成开发环境建立一个示例工程,让一个L...

whik1194的博客 1万+

CodeX 登录报错 os error 10013?一键修复 CodeX 无法登录问题(亲测有效)

CodeX 登录时报 os error 10013?本文提供快速修复方案,实测有效,彻底解决登录报错:登录失败:failed to start login server: 以一种访问权限不允许的方式做了一个访问套接字的尝试。 (os error 10013)的问题💡

XiaoqiangClub的博客 2917

【SpringData&JPA从入门到精通】03-SpringData-Repository 子接口

笔记来源:尚硅谷SpringData教程(springdata经典,spring data快速上手) 文章目录Repository 子接口1、Repository 子接口2、CrudRepository 接口3、PagingAndSortingRepository 接口4、JpaRepository 接口5、JpaSpecificationExecutor 接口6、自定义 Repository 方法总结 Repository 子接口 1、Repository 子接口 在之前 01-Repository .

VectorX's Blog 691

Rockchip eMMC寿命监控:SMART信息读取与预防性维护

擦写计数坏块数量温度使用时间。

小灰灰的博客 760

SpringData JPA学习笔记

SpringData JPA 环境准备 情景需要:创建spring boot项目,整合spring data jpa项目使用 环境要求: JDK8+ Maven3+ Intellij IDEA Spring Boot2+ MySQL8+ Spring Data JPA pom.xml <!--spring data jpa依赖--> <dependency> <groupId>org.springframework.boot</groupId> <a

weixin_45803046的博客 578

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

SpringData JPA 接口查询

SpringData JPA 接口查询 1、SpringData 接口继承结构 Repository:最顶层的接口,是一个空的接口,目的是为了统一所有Repository的类型,且能让组件扫描的时候自动识别。 CrudRepository :是Repository的子接口,提供CRUD的功能 PagingAndSortingRepository:是CrudRepository的子接口,添加分页和排序的功能 JpaRepository:是PagingAndSortingRepository的子接口,增加了一

路边烧卖 1385

STM32F407中文手册

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

SpringData JPA - ORM 框架下,打造高效数据访问层

全英文名叫 Java Persistence API,就是 java 持久化 api ,是SUN公司推出的一套基于 ORM 的规范。ORM(Object Relational Mapping)表示对象关系映射. 简单来讲,通过 ORM,就可以把对象映射到关系型数据库中(为了不用 JDBC 那套方法来操作数据库).

CYK_byte的博客 1755

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SpringData JPA整理

一 首先熟悉几种jpa中的接口Repository,CrudRepository,PagingAndSortingRepository,JpaRepository,JpaSpecificationExecutor Repository是一个空接口: 1 2 3 4 @Indexed public interface Reposito...

ken-jl 的专栏 509

SpringData JPA -JPA接口体系

一)JPA接口的继承结构 1.1)SpringData 加入的主要是两个包 1.SpringData-Commons.jar 2.SpringData-jpa.jar 1.2)JPA接口分布在这两个包下每个接口主要的作用和方法介绍 1.JapResposttory:接口 该接口是开放是常用的接口,此接口为封装了对数据库常用的Curd操作。 此接口存放于SpringData-...

失忆๑的博客 417

SpringData JPA 接口和方法

1.1 简单查询–接口方法 1.2 五个接口详解 1.2.1 CrudRepository接口 其中T是要操作的实体类,ID是实体类主键的类型。该接口提供了11个常用操作方法。 @NoRepositoryBean publicinterface CrudRepository<T, ID extendsSerializable> extends Repository<T...

微微一笑满城空 377

SpringData系列六:Repository的子接口

1、CrudRepository接口 CrudRepository 接口提供了最基本的对实体类的添删改查操作。  T save(T entity);//保存单个实体。  Iterable<T> save(Iterable<? extends T> entities);//保存集合。  T findOne(ID id);//根据id查找实体。  boolean exists(...

苍穹尘的博客 357

jpa query oracle 参数int为空_springboot整合springdata-JPA

Spring Data JPA 介绍Spring Data:其实 Spring Data 就是 spring 提供了一个操作数据的框架。而 Spring Data JPA只是 Spring Data 框架下的一个基于 JPA 标准操作数据的模块。Spring Data JPA:基于 JPA 的标准对数据进行操作。简化操作持久层的代码。只需要编写接口就可以。1 搭建整合环境2修改pom文件配置3 在...

weixin_39649490的博客 238

SpringData JPA提供的五个接口及其简单实现

1.Repository接口 用户定义的dao接口继承Repository接口后即可根据方法命名规则或@Query查询对数据库进行操作 UsersDao.java package per.czt.dao; import java.util.List; import org.springframework.data.jpa.repository.Modifying; import org.sp...

rj2017211811的博客 1356

SpringData Jpa(3)SpringDataJpa进阶,CURD

一、JPA提供的接口 Repository: 最顶层的接口,是一个空接口,目的是为了统一所有的Repository的类型,且能让组件扫描时自动识别 CrudRepository: Repository的子接口,提供CRUD 的功能。 PagingAndSortingRepository:CrudRepository的子接口, 添加分页排序。 JpaRepository: PagingAndSortingRepository的子接口,增加批量操作等。 JpaSpecificationExecutor: 用

清茶与浊酒 605

springData

学这个之前必须先学spring springmvc hibernate jpa之后再学。这个不难,难度系数3。不困就一定能学会的,哈哈。 第一部分:理论学习 Repository 接口概述 Repository 接口是 Spring Data 的一个核心接口,它不提供任何方法,开发者需要在自己定义的接口中声明需要的方法 public interface Repository<T, ID extends Serializable> {} Spring Da...

多思考思考 430

Spring Data - Spring Data JPA 提供的各种Repository接口

最近博主越来越懒了,深知这样不行。还是决定努力奋斗,如此一来,就有了一下一波复习 演示代码都基于Spring Boot + Spring Data JPA  传送门: 博主的测试代码  -------------------------------------------------------------------------------------------------...

lgxzzz的博客 1030

SpringData-JPA学习

SpringData-JPA基本使用

qq_45802158的博客 145
上一篇: springData学习(四)PagingAndSortingRepository接口学习
下一篇: springboot+shiro入门学习(一)
若往夕之
博客等级 码龄9年 20粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值