public class RsqlMappableCrudEntityHelper extends Object
RsqlMappableCrudEntityService
.
Typically, it is sufficient to extend BaseRsqlMappableCrudEntityService
in order to gain
access to this helper; however, if a service implementation spans several repository types, it is
recommend to inject this class instead. In such a case, this helper also provides access to a
MappableCrudEntityHelper
bean.
@Service
public class DefaultMyService<P extends MyPayload> implements MyService<P>
{private final RsqlMappableCrudEntityService<MyPayload> helper;
private final MyRepository repository;
public DefaultMyService(MyRepository repository, DomainMapperManager mapper) { this.helper = new RsqlMappableCrudEntityService(repository, mapper); this repository = repository; } }
Constructor and Description |
---|
RsqlMappableCrudEntityHelper(MappableCrudEntityHelper crudEntityHelper,
List<RsqlQueryTransformer> rsqlQueryTransformers) |
Modifier and Type | Method and Description |
---|---|
<D,R extends org.springframework.data.repository.CrudRepository<D,String> & MappableRsqlFilterExecutor<D>> |
castToRsqlRepository(org.springframework.data.repository.CrudRepository<D,String> repository)
Since most of the methods in the service require a repository that implements both
CrudRepository and MappableRsqlFilterExecutor , this method provides a
convenient way to handle that casting. |
MappableCrudEntityHelper |
getCrudEntityHelper()
Provides access to the internal
MappableCrudEntityHelper so as to avoid having to
inject it again. |
protected List<RsqlQueryTransformer> |
getRsqlQueryTransformers() |
<P,D,R extends MappableRsqlFilterExecutor<D>> |
readAll(cz.jirutka.rsql.parser.ast.Node filters,
org.springframework.data.domain.Pageable pageable,
R repository)
Retrieve all domain instances using a structured query string to drive the query criteria.
|
<P,D,R extends MappableRsqlFilterExecutor<D>> |
readAll(cz.jirutka.rsql.parser.ast.Node filters,
R repository)
Retrieve all domain instances using a structured query string to drive the query criteria.
|
<P,D,R extends MappableRsqlFilterExecutor<D>> |
readAll(cz.jirutka.rsql.parser.ast.Node filters,
org.springframework.data.domain.Sort sort,
org.springframework.data.domain.Pageable pageable,
R repository)
Retrieve all domain instances using a structured query string to drive the query criteria.
|
<P,D,R extends MappableRsqlFilterExecutor<D>> |
readAll(cz.jirutka.rsql.parser.ast.Node filters,
org.springframework.data.domain.Sort sort,
R repository)
Retrieve all domain instances using a structured query string to drive the query criteria.
|
cz.jirutka.rsql.parser.ast.Node |
transform(cz.jirutka.rsql.parser.ast.Node filters,
com.broadleafcommerce.common.extension.DomainTypeAware repository)
Transforms
filters from properties that target a projection into ones that apply to a
backing repository provider domain object |
public RsqlMappableCrudEntityHelper(MappableCrudEntityHelper crudEntityHelper, List<RsqlQueryTransformer> rsqlQueryTransformers)
public <P,D,R extends MappableRsqlFilterExecutor<D>> List<P> readAll(@NonNull cz.jirutka.rsql.parser.ast.Node filters, @Nullable org.springframework.data.domain.Sort sort, @NonNull R repository)
FilterParser
for
more information.
This version also accepts a formatted sort string that declares the sorting characteristics for the query.
filters
- the RSQL Node
used to restrict result, must not be nullsort
- The string containing the structured list of sorts to applyrepository
- A repository that implements MappableRsqlFilterExecutor
to perform
the persistence operationpublic <P,D,R extends MappableRsqlFilterExecutor<D>> List<P> readAll(@NonNull cz.jirutka.rsql.parser.ast.Node filters, @NonNull R repository)
FilterParser
for
more information.filters
- the RSQL Node
used to restrict result, must not be nullrepository
- A repository that implements MappableRsqlFilterExecutor
to perform
the persistence operationpublic <P,D,R extends MappableRsqlFilterExecutor<D>> org.springframework.data.domain.Page<P> readAll(@NonNull cz.jirutka.rsql.parser.ast.Node filters, @Nullable org.springframework.data.domain.Sort sort, @NonNull org.springframework.data.domain.Pageable pageable, @NonNull R repository)
FilterParser
for
more information.
This version also accepts a Sort to apply to the result set
filters
- the RSQL Node
used to restrict result, must not be nullsort
- sort to apply to the querypageable
- may be Pageable.unpaged()
, must not be null.repository
- A repository that implements MappableRsqlFilterExecutor
to perform
the persistence operationpublic <P,D,R extends MappableRsqlFilterExecutor<D>> org.springframework.data.domain.Page<P> readAll(@NonNull cz.jirutka.rsql.parser.ast.Node filters, @NonNull org.springframework.data.domain.Pageable pageable, @NonNull R repository)
FilterParser
for
more information.filters
- the RSQL Node
used to restrict result, must not be nullpageable
- may be Pageable.unpaged()
, must not be null.repository
- A repository that implements MappableRsqlFilterExecutor
to perform
the persistence operation@NonNull public cz.jirutka.rsql.parser.ast.Node transform(@Nullable cz.jirutka.rsql.parser.ast.Node filters, @NonNull com.broadleafcommerce.common.extension.DomainTypeAware repository)
filters
from properties that target a projection into ones that apply to a
backing repository provider domain objectfilters
- RSQL filters targeting a projection domainrepository
- A DomainTypeAware
implementing repository from which to glean
entity information for the transformationfilters
is null, otherwise an RSQL query
suitable for targeting a repository domain object.RsqlQueryTransformer
public final <D,R extends org.springframework.data.repository.CrudRepository<D,String> & MappableRsqlFilterExecutor<D>> R castToRsqlRepository(org.springframework.data.repository.CrudRepository<D,String> repository)
CrudRepository
and MappableRsqlFilterExecutor
, this method provides a
convenient way to handle that casting.D
- a domain typeR
- used to do the multi-interface check.repository
- Since most services that use this helper will use CrudRepository
(or an extension thereof), this method expects that as the argument.CrudRepository
that also implements MappableRsqlFilterExecutor
cast
in such a way as to allow type checking for both interfaces for use with this
service's methods.@NonNull public MappableCrudEntityHelper getCrudEntityHelper()
MappableCrudEntityHelper
so as to avoid having to
inject it again.MappableCrudEntityHelper
MappableCrudEntityHelper
@NonNull protected List<RsqlQueryTransformer> getRsqlQueryTransformers()
Copyright © 2021. All rights reserved.