アノテーションインターフェース BatchMapping
ソース / 親値のリストを指定して、フィールド値をバッチでロードするハンドラーメソッドのアノテーション。例:
@BatchMapping
public Mono<Map<Book, Author>> author(List<Book> books) {
// ...
}
アノテーションが付けられたメソッドは、BatchLoaderRegistry を介してバッチロード関数として登録され、それとともに、登録された DataLoader を介してフィールド値を検索するフィールドの DataFetcher が透過的に登録されます。
事実上、次のショートカットです。
@Controller
public class BookController {
public BookController(BatchLoaderRegistry registry) {
registry.forTypePair(Long.class, Author.class).registerMappedBatchLoader((ids, environment) -> ...);
}
@SchemaMapping
public CompletableFuture<Author> author(Book book, DataLoader<Long, Author> dataLoader) {
return dataLoader.load(book.getAuthorId());
}
}
Mono<Map<K,T>> を返すことに加えて、@BatchMapping メソッドは Flux<T> を返すこともできます。ただし、その場合、返される値のシーケンスは、入力キーの数と順序と一致する必要があります。詳細については、BatchLoader および MappedBatchLoader を参照してください。
- 導入:
- 1.0.0
- 作成者:
- Rossen Stoyanchev
オプション要素の概要
オプション要素
要素の詳細
field
value
typeName
StringSE typeNameGraphQL フィールドのソース / 親型の名前をカスタマイズします。デフォルトでは、指定されていない場合、ハンドラーメソッドに注入されたソース / 親値のリストの単純なクラス名に基づいています。
この属性の値は、クラスレベルの
@SchemaMappingから継承することもできます。両方のレベルで使用すると、ここにあるものはクラスレベルのものをオーバーライドします。- デフォルト:
""
maxBatchSize
int maxBatchSizeロードするキーの複数のバッチに分割する前に、1 つのバッチに含めるキーの最大数を設定します。デフォルトでは -1 で、制限はありません。
- 導入:
- 1.1.0
- デフォルト:
-1