Class QueryByExampleDataFetcher.Builder<T,R>

java.lang.Object
org.springframework.graphql.data.query.QueryByExampleDataFetcher.Builder<T,R>
Type Parameters:
T - domain type
R - result type
Enclosing class:
QueryByExampleDataFetcher<T>

public static class QueryByExampleDataFetcher.Builder<T,R> extends Object
Builder for a Query by Example-based DataFetcher. Note that builder instances are immutable and return a new instance of the builder when calling configuration methods.
  • Method Details

    • projectAs

      public <P> QueryByExampleDataFetcher.Builder<T,P> projectAs(Class<P> projectionType)
      Project results returned from the QueryByExampleExecutor into the target projectionType. Projection types can be either interfaces with property getters to expose or regular classes outside the entity type hierarchy for DTO projections.
      Type Parameters:
      P - the projection type
      Parameters:
      projectionType - projection type
      Returns:
      a new QueryByExampleDataFetcher.Builder instance with all previously configured options and projectionType applied
    • cursorStrategy

      public QueryByExampleDataFetcher.Builder<T,R> cursorStrategy(@Nullable CursorStrategy<org.springframework.data.domain.ScrollPosition> cursorStrategy)
      Configure strategy for decoding a cursor from a paginated request.

      By default, this is ScrollPositionCursorStrategy with CursorEncoder.base64() encoding.

      Parameters:
      cursorStrategy - the strategy to use
      Returns:
      a new QueryByExampleDataFetcher.Builder instance with all previously configured options and Sort applied
      Since:
      1.2.0
    • defaultScrollSubrange

      public QueryByExampleDataFetcher.Builder<T,R> defaultScrollSubrange(int defaultCount, Function<Boolean,org.springframework.data.domain.ScrollPosition> defaultPosition)
      Configure a default scroll count to use, and function to return a default ScrollPosition for forward vs backward pagination.

      For offset scrolling, use ScrollPosition.offset() to scroll from the beginning. Currently, it is not possible to go back from the end.

      For keyset scrolling, use ScrollPosition.keyset() to scroll from the beginning, or KeysetScrollPosition.reverse() the same to go back from the end.

      By default a count of 20 and ScrollPosition.offset() are used.

      Parameters:
      defaultCount - the default count of elements in the subrange
      defaultPosition - function that returns a default ScrollPosition
      Since:
      1.2.5
    • defaultScrollSubrange

      @Deprecated(since="1.2.5", forRemoval=true) public QueryByExampleDataFetcher.Builder<T,R> defaultScrollSubrange(@Nullable ScrollSubrange defaultSubrange)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Configure a ScrollSubrange to use when a paginated request does not specify a cursor and/or a count of items.

      By default, this is ScrollPosition.offset() with a count of 20.

      Parameters:
      defaultSubrange - the default scroll subrange
      Returns:
      a new QueryByExampleDataFetcher.Builder instance with all previously configured options and Sort applied
    • sortBy

      public QueryByExampleDataFetcher.Builder<T,R> sortBy(org.springframework.data.domain.Sort sort)
      Apply a Sort order.
      Parameters:
      sort - the default sort order
      Returns:
      a new QueryByExampleDataFetcher.Builder instance with all previously configured options and Sort applied
    • single

      public DataFetcher<R> single()
      Build a DataFetcher to fetch single object instances.
    • many

      public DataFetcher<Iterable<R>> many()
      Build a DataFetcher to fetch many object instances.
    • scrollable

      public DataFetcher<Iterable<R>> scrollable()
      Build a DataFetcher that scrolls and returns Window.
      Since:
      1.2.0