Spring Data R2DBC | 付録

付録A: Repository Query Keyword

対応するQuery Method Subject Keyword

次のkeywordはSpring Data repositoryのquery導出で一般的にサポートされます。storeごとに差があるため、正確な一覧はstore固有のドキュメントを参照してください。

Keyword 説明
find...By, read...By, get...By, query...By, search...By, stream...By repository型、CollectionStreamablePageGeoResults、store固有wrapperを返す一般query。
count...By 数値を返すcount projection。
delete...By, remove...By 戻り値なし、または削除件数を返すdelete query。
...First<number>..., ...Top<number>... 先頭から<number>件に制限。
...Distinct... storeが対応する場合に重複しない結果を返す。

Predicate KeywordとModifier

Logical keyword Keyword expressions
AND And
OR Or
AFTER After, IsAfter
BEFORE Before, IsBefore
CONTAINING Containing, IsContaining, Contains
BETWEEN Between, IsBetween
ENDING_WITH EndingWith, IsEndingWith, EndsWith
EXISTS Exists
FALSE False, IsFalse
GREATER_THAN GreaterThan, IsGreaterThan
GREATER_THAN_EQUALS GreaterThanEqual, IsGreaterThanEqual
IN In, IsIn
IS Is, Equals, keywordなし
IS_EMPTY IsEmpty, Empty
IS_NOT_EMPTY IsNotEmpty, NotEmpty
IS_NOT_NULL NotNull, IsNotNull
IS_NULL Null, IsNull
LESS_THAN LessThan, IsLessThan
LESS_THAN_EQUAL LessThanEqual, IsLessThanEqual
LIKE Like, IsLike
NEAR Near, IsNear
NOT Not, IsNot
NOT_IN NotIn, IsNotIn
NOT_LIKE NotLike, IsNotLike
REGEX Regex, MatchesRegex, Matches
STARTING_WITH StartingWith, IsStartingWith, StartsWith
TRUE True, IsTrue
WITHIN Within, IsWithin
Modifier 説明
IgnoreCase, IgnoringCase 大文字と小文字を区別しない比較。
AllIgnoreCase, AllIgnoringCase 適切なすべてのpropertyで大文字と小文字を区別しない。
OrderBy... OrderByFirstnameAscLastnameDescのように静的sort順を指定。

付録B: Repository Query Return Type

次の戻り値型は一般的にサポートされます。正確な一覧はstore固有のドキュメントを参照してください。

Return type 説明
void, primitive, wrapper type 戻り値なし、Java primitive、Java wrapper type。
T 一つのentityまたはnull。複数結果はIncorrectResultSizeDataAccessException
Iterator<T>, Collection<T>, List<T> 標準container型。
Optional<T> Java 8またはGuava optional値。
Option<T> ScalaまたはVavrのOptional相当型。
Stream<T>, Streamable<T> Java 8 Stream、または便利なIterable拡張。
Custom Streamable wrapper Streamable constructorまたはof(...)/valueOf(...) factoryを持つ型。
Vavr Seq, List, Map, Set Vavr collection型。
Future<T>, CompletableFuture<T>, ListenableFuture @AsyncとSpring非同期実行を必要とする型。
Slice<T>, Page<T> Pageableを必要とするchunkまたはpage。
GeoResult<T>, GeoResults<T>, GeoPage<T> 距離やpage情報を含む地理空間結果。
Mono<T>, Flux<T> Reactorの0..1または0..N型。
Single<T>, Maybe<T>, Flowable<T> RxJavaの1、0..1、0..N型。

付録C: Migration Guide

1.1.xから1.2.xへのupgrade

Spring Data R2DBCのcore supportは、有用性が確認された後にSpring Framework 5.3のSpring R2DBC (spring-r2dbc)へ移されました。

spring-r2dbcは、より軽量なDatabaseClient、transaction manager、connection factory初期化、例外変換を提供します。DatabaseClient.execute(...)DatabaseClient.sql(...)へ変更され、CRUD APIはR2dbcEntityTemplateへ移されました。SQL logger prefixもorg.springframework.data.r2dbcからorg.springframework.r2dbcへ変更してください。

Deprecated API

  • o.s.d.r2dbc.core.DatabaseClientと関連classはo.s.r2dbc.core.DatabaseClientへ変更します。entity CRUDにはR2dbcEntityTemplateを使います。
  • o.s.d.r2dbc.connectionfactory関連packageはo.s.r2dbc.connectionへ変更します。
  • ColumnMapRowMappero.s.r2dbc.core.ColumnMapRowMapperへ変更します。
  • binding support classはorg.springframework.r2dbc.core.bindingの代替を使います。
  • 例外変換はo.s.r2dbc.connection.ConnectionFactoryUtils#convertR2dbcExceptionを使います。

Spring R2DBCの代替型

R2dbcEntityTemplateR2dbcDialectorg.springframework.data.r2dbc.query型を直接使う場合はimportを確認してください。

Breaking Change

  • OutboundRowとstatement mapperはSettableValueからParameterへ変更されました。
  • repository factory supportにはo.s.r2dbc.core.DatabaseClientが必要です。

Dependency Change

  • org.springframework:spring-r2dbc

Version 1.4.0
Last updated 2021-11-12 11:03:33 +0100