T
- type
identifying the Repositories
to match on during registration.QUERY
- type
of the query to process.public abstract class AbstractQueryPostProcessor<T extends Repository,QUERY> extends Object implements QueryPostProcessor<T,QUERY>
AbstractQueryPostProcessor
class is an abstract base class for simplifying the implementation
of QueryPostProcessors
.
QueryPostProcessors
are useful for handling and processing queries
generated from Repository
query methods
, and give a developer an opportunity,
via the callback, to further process the generated query
.
QueryPostProcessors
can be used on both generated queries
and manual queries
. Manual queries
are defined as
queries
specified using SDG's @Query
annotation or by defining a named
query
in a module-specific Properties
files.Ordered
,
Repository
,
QueryMethod
Modifier and Type | Class and Description |
---|---|
protected static class |
AbstractQueryPostProcessor.ComposableQueryPostProcessor<T extends Repository,QUERY> |
Modifier and Type | Field and Description |
---|---|
protected static Object[] |
EMPTY_ARRAY |
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
Constructor and Description |
---|
AbstractQueryPostProcessor() |
Modifier and Type | Method and Description |
---|---|
int |
getOrder()
|
QUERY |
postProcess(QueryMethod queryMethod,
QUERY query)
Callback method invoked by the Spring Data (SD)
Repository framework to allow the user to process
the given query and (possibly) return a new or modified version of the query . |
QueryPostProcessor<?,QUERY> |
processAfter(QueryPostProcessor<?,QUERY> queryPostProcessor)
Builder method used to compose, or combine this
QueryPostProcessor with
the given QueryPostProcessor . |
QueryPostProcessor<?,QUERY> |
processBefore(QueryPostProcessor<?,QUERY> queryPostProcessor)
Builder method used to compose, or combine this
QueryPostProcessors
with the given QueryPostProcessor . |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
postProcess
protected static final Object[] EMPTY_ARRAY
public int getOrder()
order
of this QueryPostProcessor
relative to
other QueryPostProcessors
in a sort.
Defaults to the Ordered.LOWEST_PRECEDENCE
.getOrder
in interface Ordered
Integer
value specifying the order of this QueryPostProcessor
relative to
other QueryPostProcessors
in a sort.Ordered.getOrder()
public QUERY postProcess(QueryMethod queryMethod, QUERY query)
Repository
framework to allow the user to process
the given query
and (possibly) return a new or modified version of the query
.
This callback is invoked for queries generated from a SD Repository
QueryMethod
signature as well as queries specified and defined in NamedQueries
,
or even using SDG's @Query
annotation.postProcess
in interface QueryPostProcessor<T extends Repository,QUERY>
query
- query
to process.query
.QueryMethod
,
QueryPostProcessor.postProcess(QueryMethod, Object, Object...)
public QueryPostProcessor<?,QUERY> processBefore(QueryPostProcessor<?,QUERY> queryPostProcessor)
QueryPostProcessors
with the given QueryPostProcessor
.
This QueryPostProcessor
will come before the given QueryPostProcessor
in the processing chain.processBefore
in interface QueryPostProcessor<T extends Repository,QUERY>
queryPostProcessor
- QueryPostProcessor
to compose with this QueryPostProcessor
.QueryPostProcessor
consisting of this QueryPostProcessor
followed by the given QueryPostProcessor
. Returns this QueryPostProcessor
if the given QueryPostProcessor
is null.processAfter(QueryPostProcessor)
public QueryPostProcessor<?,QUERY> processAfter(QueryPostProcessor<?,QUERY> queryPostProcessor)
QueryPostProcessor
with
the given QueryPostProcessor
.
This QueryPostProcessor
will come after the given QueryPostProcessor
in the processing chain.processAfter
in interface QueryPostProcessor<T extends Repository,QUERY>
queryPostProcessor
- QueryPostProcessor
to compose with this QueryPostProcessor
.QueryPostProcessor
consisting of the given QueryPostProcessor
followed by this QueryPostProcessor
. Returns this QueryPostProcessor
if the given QueryPostProcessor
is null.processBefore(QueryPostProcessor)
Copyright © 2011–2018 Pivotal Software, Inc.. All rights reserved.