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)

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

(0)

相关推荐

  • 详解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

  • 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 关键字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.

  • Spring Data JPA系列JpaSpecificationExecutor用法详解

    目录 1.JpaSpecificationExecutor用法 2.JpaSpecificationExecutor语法详解 2.1 Specification 接口 2.2 Root< User >root 2.3 CriteriaQuery<?> query 2.4 CriteriaBuilder cb 在上一篇文章中,我们介绍了QueryByExampleExecutor动态查询的方法,那么今天我们来学习JpaSpecificationExecutor的详细用法. 1.Jpa

  • 详解Spring Data JPA系列之投影(Projection)的用法

    本文介绍了Spring Data JPA系列之投影(Projection)的用法,分享给大家 在JPA的查询中,有一个不方便的地方,@Query注解,如果查询直接是 Select C from Customer c ,这时候,查询的返回对象就是Customer这个完整的对象,包含所有字段,对于我们的示例并没有什么问题,但是对于比较庞大的domain类,这个查询时就比较要命,并不是所有的字段都能用到,比较头疼.另外,如果定义 select c.firstName as firstName,c.la

  • spring data jpa使用详解(推荐)

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

  • Spring Data JPA分页复合查询原理解析

    Spring Data JPA是Spring Data家族的一部分,可以轻松实现基于JPA的存储库. 此模块处理对基于JPA的数据访问层的增强支持. 它使构建使用数据访问技术的Spring驱动应用程序变得更加容易. 在相当长的一段时间内,实现应用程序的数据访问层一直很麻烦. 必须编写太多样板代码来执行简单查询以及执行分页和审计. Spring Data JPA旨在通过减少实际需要的工作量来显著改善数据访问层的实现. 作为开发人员,您编写repository接口,包括自定义查找器方法,Spring

  • Spring Data JPA查询方式及方法名查询规则介绍

    目录 Spring Data JPA查询方式及方法名查询规则 一.通过解析方法名创建查询 二.使用 @Query 创建查询 JPA 常用查询方法记录 CrudRepository 默认带的查询方法 简单的扩展-以字段为关键字进行查询 使用@Query 进行复杂查询 使用 Specification 进行复杂查询 Predicate CriteriaBuilder Root Spring Data JPA查询方式及方法名查询规则 Spring Data JPA 一.通过解析方法名创建查询 在执行查

  • Spring Data Jpa框架最佳实践示例

    目录 前言 扩展接口用法 SPRINGDATAJPA最佳实践 一.继承SIMPLEJPAREPOSITORY实现类 二.集成QUERYDSL结构化查询 1.快速集成 2.丰富BaseJpaRepository基类 3.最终的BaseJpaRepository形态 三.集成P6SPY打印执行的SQL 结语 前言 Spring Data Jpa框架的目标是显著减少实现各种持久性存储的数据访问层所需的样板代码量. Spring Data Jpa存储库抽象中的中央接口是Repository.它需要领域实

  • 详解Spring Data JPA中Repository的接口查询方法

    目录 1.查询方法定义详解 2.搜索查询策略 3.查询创建 4.属性表达式 5.特殊参数处理 6.限制查询结果 7. repository方法返回Collections or Iterables 8.repository方法处理Null 9.查询结果流 10.异步查询结果 1.查询方法定义详解 repository代理有两种方式从方法名中派生出特定存储查询. 通过直接从方法名派生查询. 通过使用一个手动定义的查询. 可用的选项取决于实际的商店.然而,必须有一个策略来决定创建什么实际的查询. 2.

  • Spring Data JPA系列QueryByExampleExecutor使用详解

    目录 1.QueryByExampleExecutor用法 1.1 介绍 1.2 QueryByExampleExecutor接口 1.3 QueryByExampleExecutor实践 1.4 Example语法详解 1.5 ExampleMatcher语法分析 2.ExampleMatcher语法暴露常用方法 2.1 忽略大小写 2.2 NULL值的Property的处理方式 2.3 忽略某些属性列表,不参与查询过滤条件 2.4 字符串默认的匹配规则 3.实践出真理 3.1 AND查询 3

随机推荐