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型、Collection、Streamable、Page、GeoResults、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固有のドキュメントを参照してください。
Info
`GeoResult`、`GeoResults`、`GeoPage`などは地理空間query対応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へ変更します。ColumnMapRowMapperはo.s.r2dbc.core.ColumnMapRowMapperへ変更します。- binding support classは
org.springframework.r2dbc.core.bindingの代替を使います。 - 例外変換は
o.s.r2dbc.connection.ConnectionFactoryUtils#convertR2dbcExceptionを使います。
Spring R2DBCの代替型
R2dbcEntityTemplate、R2dbcDialect、org.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