Spring Data JPA 关键字Exists的用法说明

Spring Data JPA 关键字Exists

查询数据库中的此数据是否已存在:

例子:

查询sys_user表中的一个user是否存在,类SysUser对应的是数据库中的sys_user表,SysUserId是表sys_user的主键类(ID类)。

如果查询一个user,user的accountNo为demo。

userID为demo1,表sys_user的主键是accountNo和userID,下面代码中的方法是查询这个user是否存在,如果存在则返回true,不存在则返回false。

@Repository
public interface SysUserRepository extends JpaRepository<SysUser, SysUserId> {
    @Override
    boolean exists(SysUserId sysUserId);
}

Spring data jpa支持的关键字介绍

Sample JPQL snippet

And


findByLastnameAndFirstname


… where x.lastname = ?1 and x.firstname = ?2


Or


findByLastnameOrFirstname


… where x.lastname = ?1 or x.firstname = ?2


Is,Equals


findByFirstname,findByFirstnameIs,findByFirstnameEquals


… where x.firstname = ?1


Between


findByStartDateBetween


… where x.startDate between ?1 and ?2


LessThan


findByAgeLessThan


… where x.age < ?1


LessThanEqual


findByAgeLessThanEqual


… where x.age <= ?1


GreaterThan


findByAgeGreaterThan


… where x.age > ?1


GreaterThanEqual


findByAgeGreaterThanEqual


… where x.age >= ?1


After


findByStartDateAfter


… where x.startDate > ?1


Before


findByStartDateBefore


… where x.startDate < ?1


IsNull


findByAgeIsNull


… where x.age is null


IsNotNull,NotNull


findByAge(Is)NotNull


… where x.age not null


Like


findByFirstnameLike


… where x.firstname like ?1


NotLike


findByFirstnameNotLike


… where x.firstname not like ?1


StartingWith


findByFirstnameStartingWith


… where x.firstname like ?1(parameter bound with appended %)


EndingWith


findByFirstnameEndingWith


… where x.firstname like ?1(parameter bound with prepended %)


Containing


findByFirstnameContaining


… where x.firstname like ?1(parameter bound wrapped in %)


OrderBy


findByAgeOrderByLastnameDesc


… where x.age = ?1 order by x.lastname desc


Not


findByLastnameNot


… where x.lastname <> ?1


In


findByAgeIn(Collection<Age> ages)


… where x.age in ?1


NotIn


findByAgeNotIn(Collection<Age> age)


… where x.age not in ?1


True


findByActiveTrue()


… where x.active = true


False


findByActiveFalse()


… where x.active = false


IgnoreCase


findByFirstnameIgnoreCase


… where UPPER(x.firstame) = UPPER(?1)

Keyword Sample JPQL snippet

And


findByLastnameAndFirstname


… where x.lastname = ?1 and x.firstname = ?2


Or


findByLastnameOrFirstname


… where x.lastname = ?1 or x.firstname = ?2


Is,Equals


findByFirstname,findByFirstnameIs,findByFirstnameEquals


… where x.firstname = ?1


Between


findByStartDateBetween


… where x.startDate between ?1 and ?2


LessThan


findByAgeLessThan


… where x.age < ?1


LessThanEqual


findByAgeLessThanEqual


… where x.age <= ?1


GreaterThan


findByAgeGreaterThan


… where x.age > ?1


GreaterThanEqual


findByAgeGreaterThanEqual


… where x.age >= ?1


After


findByStartDateAfter


… where x.startDate > ?1


Before


findByStartDateBefore


… where x.startDate < ?1


IsNull


findByAgeIsNull


… where x.age is null


IsNotNull,NotNull


findByAge(Is)NotNull


… where x.age not null


Like


findByFirstnameLike


… where x.firstname like ?1


NotLike


findByFirstnameNotLike


… where x.firstname not like ?1


StartingWith


findByFirstnameStartingWith


… where x.firstname like ?1(parameter bound with appended %)


EndingWith


findByFirstnameEndingWith


… where x.firstname like ?1(parameter bound with prepended %)


Containing


findByFirstnameContaining


… where x.firstname like ?1(parameter bound wrapped in %)


OrderBy


findByAgeOrderByLastnameDesc


… where x.age = ?1 order by x.lastname desc


Not


findByLastnameNot


… where x.lastname <> ?1


In


findByAgeIn(Collection<Age> ages)


… where x.age in ?1


NotIn


findByAgeNotIn(Collection<Age> age)


… where x.age not in ?1


True


findByActiveTrue()


… where x.active = true


False


findByActiveFalse()


… where x.active = false


IgnoreCase


findByFirstnameIgnoreCase


… where UPPER(x.firstame) = UPPER(?1)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2021-06-09

SpringData关键字查询实现方法详解

一.创建项目并导入Jap相关依赖 1.1 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifac

详解Spring Data Jpa 模糊查询的正确用法

模糊查询 Spring Data Jpa的使用可以减少开发者对sql语句的编写,甚至完全不需要编写sql语句.但是,开发过程中总会遇到各种复杂的场景以及大大小小的坑. 今天项目中某个功能模块需要用到模糊查询.原生sql中模糊查询关键字'Like',而Spring Data Jpa的Repository接口中恰恰也有实体字段对应的Like.但是,如果直接使用它,那么恭喜你,你幸运地掉坑了. Spring Data Jpa 模糊查询正确用法 首先,我们先创建一个实体用来存储我们的数据 /** * 实

Spring Data Jpa的四种查询方式详解

这篇文章主要介绍了Spring Data Jpa的四种查询方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.调用接口的方式 1.基本介绍 通过调用接口里的方法查询,需要我们自定义的接口继承Spring Data Jpa规定的接口 public interface UserDao extends JpaRepository<User, Integer>, JpaSpecificationExecutor<User> 使用这

Spring Data JPA 简单查询--方法定义规则(详解)

一.常用规则速查 1 And 并且 2 Or   或 3 Is,Equals 等于 4 Between   两者之间 5 LessThan 小于 6 LessThanEqual   小于等于 7 GreaterThan 大于 8 GreaterThanEqual   大于等于 9 After 之后(时间) > 10 Before 之前(时间) < 11 IsNull 等于Null 12 IsNotNull,NotNull 不等于Null 13 Like 模糊查询.查询件中需要自己加 % 14

spring data jpa分页查询示例代码

最近项目上用就hibernate+spring data jpa,一开始感觉还不错,但是随着对业务的复杂,要求处理一些复杂的sql,就顺便研究了下,把结果记录下,以便日后查看.用到Specification,需要继承JpaSpecificationExecutor接口.(下面代码有的分页从0开始作为第一页,有的从1开始作为作为第一页,我也忘记,请自己测试) DAO层: import java.util.List; import org.springframework.data.domain.Pa

Spring Boot Actuator监控的简单使用方法示例代码详解

Spring Boot Actuator帮助我们实现了许多中间件比如mysql.es.redis.mq等中间件的健康指示器. 通过 Spring Boot 的自动配置,这些指示器会自动生效.当这些组件有问题的时候,HealthIndicator 会返回 DOWN 或 OUT_OF_SERVICE 状态,health 端点 HTTP 响应状态码也会变为 503,我们可以以此来配置程序健康状态监控报警. 使用步骤也非常简单,这里演示的是线程池的监控.模拟线程池满了状态下将HealthInicator

使用Spring Data JPA的坑点记录总结

前言 Spring-data-jpa的基本介绍:JPA诞生的缘由是为了整合第三方ORM框架,建立一种标准的方式,百度百科说是JDK为了实现ORM的天下归一,目前也是在按照这个方向发展,但是还没能完全实现.在ORM框架中,Hibernate是一支很大的部队,使用很广泛,也很方便,能力也很强,同时Hibernate也是和JPA整合的比较良好,我们可以认为JPA是标准,事实上也是,JPA几乎都是接口,实现都是Hibernate在做,宏观上面看,在JPA的统一之下Hibernate很良好的运行. 最近在

spring Data jpa简介_动力节点Java学院整理

前言 自 JPA 伴随 Java EE 5 发布以来,受到了各大厂商及开源社区的追捧,各种商用的和开源的 JPA 框架如雨后春笋般出现,为开发者提供了丰富的选择.它一改之前 EJB 2.x 中实体 Bean 笨重且难以使用的形象,充分吸收了在开源社区已经相对成熟的 ORM 思想.另外,它并不依赖于 EJB 容器,可以作为一个独立的持久层技术而存在.目前比较成熟的 JPA 框架主要包括 Jboss 的 Hibernate EntityManager.Oracle 捐献给 Eclipse 社区的 E

spring data jpa使用详解(推荐)

使用Spring data JPA开发已经有一段时间了,这期间学习了一些东西,也遇到了一些问题,在这里和大家分享一下. 前言: Spring data简介: Spring Data是一个用于简化数据库访问,并支持云服务的开源框架.其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce框架和云计算数据服务. Spring Data 包含多个子项目: Commons - 提供共享的基础框架,适合各个子项目使用,支持跨数据库持久化 JPA - 简化创建 JPA 数据访问层和跨存储的持久层

Spring Data JPA实现动态查询的两种方法

前言 一般在写业务接口的过程中,很有可能需要实现可以动态组合各种查询条件的接口.如果我们根据一种查询条件组合一个方法的做法来写,那么将会有大量方法存在,繁琐,维护起来相当困难.想要实现动态查询,其实就是要实现拼接SQL语句.无论实现如何复杂,基本都是包括select的字段,from或者join的表,where或者having的条件.在Spring Data JPA有两种方法可以实现查询条件的动态查询,两种方法都用到了Criteria API. Criteria API 这套API可用于构建对数据

Spring Data JPA进行数据分页与排序的方法

一.导读 如果一次性加载成千上万的列表数据,在网页上显示将十分的耗时,用户体验不好.所以处理较大数据查询结果展现的时候,分页查询是必不可少的.分页查询必然伴随着一定的排序规则,否则分页数据的状态很难控制,导致用户可能在不同的页看到同一条数据.那么,本文的主要内容就是给大家介绍一下,如何使用Spring Data JPA进行分页与排序. 二.实体定义 我们使用一个简单的实体定义:Article(文章) @Data @AllArgsConstructor @NoArgsConstructor @Bu