Spring Data JPA CRUD

1.查询关键字

关键字描述
find...By
read...By
get...By
query...By
search...By
stream...By
一般查询方法,通常返回存储库(repository)类型、CollectionStreamable子类型或结果包装器(result wrapper),例如PageGeoResults或任何其它特定于存储的结果包装器。可用作findBy...findMyDomainTypeBy...或与其它关键字组合使用。
exists...By存在推断,通常返回boolean结果。
count...By计数推断,返回数字结果。
delete...By
remove...By
删除查询方法,返回无结果 ( void) 或删除计数。
...First<number>...
...Top<number>...
将查询结果限制为第一个<number>结果。此关键字可以出现在find(以及其它关键字)和by之间的任何位置。
...Distinct...使用distinct查询仅返回唯一的结果。此关键字可以出现在find(以及其它关键字)和by之间的任何位置 。

2.查询谓语关键字

逻辑关键字关键字表达式
ANDAnd
OROr
AFTERAfterIsAfter
BEFOREBeforeIsBefore
CONTAININGContainingIsContainingContains
BETWEENBetweenIsBetween
ENDING_WITHEndingWithIsEndingWithEndsWith
EXISTSExists
FALSEFalseIsFalse
GREATER_THANGreaterThanIsGreaterThan
GREATER_THAN_EQUALSGreaterThanEqualIsGreaterThanEqual
INInIsIn
ISIsEquals, (或没有关键字)
IS_EMPTYIsEmptyEmpty
IS_NOT_EMPTYIsNotEmptyNotEmpty
IS_NOT_NULLNotNullIsNotNull
IS_NULLNullIsNull
LESS_THANLessThanIsLessThan
LESS_THAN_EQUALLessThanEqualIsLessThanEqual
LIKELikeIsLike
NEARNearIsNear
NOTNotIsNot
NOT_INNotInIsNotIn
NOT_LIKENotLikeIsNotLike
REGEXRegexMatchesRegexMatches
STARTING_WITHStartingWithIsStartingWithStartsWith
TRUETrueIsTrue
WITHINWithinIsWithin

3.查询谓词修饰符关键字

关键词描述
IgnoreCase,IgnoringCase与谓词关键字一起用于不区分大小写的比较。
AllIgnoreCase,AllIgnoringCase忽略所有合适属性的大小写。在查询方法谓词的某处使用。
OrderBy...指定静态排序顺序,后跟属性路径和方向(例如OrderByFirstnameAscLastnameDesc)。

4.查询返回类型

返回类型描述
void表示没有返回值。
PrimitivesJava 原始(Primitive)类型。
Wrapper typesJava 包装器(Wrapper)类型。
T一个唯一的实体。期望查询方法最多返回一个结果。如果没有找到结果,则返回null。多个结果会触发IncorrectResultSizeDataAccessException异常。
Iterator<T>一个Iterator
Collection<T>一个Collection
List<T>一个List
Optional<T>Java 8 或 Guava Optional。期望查询方法最多返回一个结果。如果没有找到结果,则返回Optional.empty()或者Optional.absent()。多个结果会触发IncorrectResultSizeDataAccessException异常。
Option<T>Scala 或 VavrOption类型。语义上与 Java 8 Optional相同的行为,如前所述。
Stream<T>一个 Java 8 Stream
Streamable<T>一个方便的Iterable扩展,该扩展直接暴露了方法给流式处理(stream)、映射(map)和过滤(filter)结果、连接(concatenate)它们等。
实现Streamable并采用Streamable构造函数或工厂方法参数的类型暴露一个构造函数或….of(…)/….valueOf(…)工厂方法的类型,此构造方法或工厂方法以Streamable作为参数。
Vavr SeqListMap,SetVavr collection类型。
Future<T>一个Future。期望一个方法被@Async注解并且需要启用 Spring 的异步方法执行能力。
CompletableFuture<T>一个 Java 8 CompletableFuture。期望一个方法被@Async注解并且需要启用 Spring 的异步方法执行能力。
ListenableFuture一个org.springframework.util.concurrent.ListenableFuture。期望一个方法被@Async注解并且需要启用 Spring 的异步方法执行能力。
Slice<T>一定大小的数据块,指示是否有更多可用数据。需要Pageable方法参数。
Page<T>一个带有附加信息的Slice,例如结果总数。需要Pageable方法参数。
GeoResult<T>一个带有附加信息的结果条目,例如到参考位置的距离。
GeoResults<T>一个带有附加信息的GeoResult<T>列表,例如到参考位置的平均距离。
GeoPage<T>一个带GeoResult<T>Page,例如到参考位置的平均距离。
Mono<T>一个项目反应器(Project Reactor)Mono,它使用反应式存储库(reactive repositories)发射零个或一个元素。期望查询方法最多返回一个结果。如果没有找到结果,则返回Mono.empty()。多个结果会触发IncorrectResultSizeDataAccessException异常。
Flux<T>一个项目反应器(Project Reactor)Flux,它使用反应式存储库(reactive repositories)发射零个、一个或多个元素。返回Flux的查询也可以发出无限数量的元素。
Single<T>一个RxJavaSingle,它使用响应式存储库(reactive repositories)发出单个元素 。期望查询方法最多返回一个结果。如果没有找到结果,则返回Mono.empty()。多个结果会触发IncorrectResultSizeDataAccessException异常。
Maybe<T>一个RxJavaMaybe,它使用响应式存储库(reactive repositories)发出零或一个元素。期望查询方法最多返回一个结果。如果没有找到结果,则返回Mono.empty()。多个结果会触发IncorrectResultSizeDataAccessException异常。
Flowable<T>一个RxJavaFlowable,它使用响应式存储库(reactive repositories)发出零个、一个或多个元素。返回Flowable的查询也可以发出无限数量的元素。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/experience/javae/16989.html

(0)
上一篇 2022年8月3日 15:56
下一篇 2022年8月4日 02:28

相关推荐

  • JDBC数据库编程详解

    1.安装驱动程序 到对应的数据库厂商那里获取对应的驱动程序并安装。 2.数据库配置 3.连接到数据库 4.使用JDBC语句 4.1execute execute 执行给定的SQL语句,该语句可能返回多个结果。 executeBatch 提交一批命令到数据库执行,如果所有命令都成功执行,则返回一个更新计数数组。 exec…

    Java经验 2021年10月28日
    05080
  • Maven依赖版本管理详解

    软要求可以被依赖图中其它地方发现的同一artifact的不同版本替换。硬要求强制要求一个或多个特定版本并覆盖软要求。如果没有满足该工件所有硬性要求的依赖项版本,则构建失败。 版本要求具有以下语法: 软要求 硬要求

    Java经验 2021年6月4日
    03900
  • Liquibase映射类型一览表

    Liquibase类型 别名 tinyint java.sql.Types.TINYINT smallint {“java.sql.Types.SMALLINT”, “int2”} mediumint 无 int { “integer”, &#82…

    Java经验 2022年8月2日
    04710

发表回复

登录后才能评论