Class AbstractBaseCrudService<E,D,ID,FD extends GenericFilterDTO>
java.lang.Object
org.praxisplatform.uischema.service.base.AbstractBaseCrudService<E,D,ID,FD>
- Type Parameters:
E- Entity typeD- DTO typeID- Identifier typeFD- Filter DTO type
- All Implemented Interfaces:
BaseCrudService<E,D, ID, FD>
- Direct Known Subclasses:
AbstractReadOnlyService
public abstract class AbstractBaseCrudService<E,D,ID,FD extends GenericFilterDTO>
extends Object
implements BaseCrudService<E,D,ID,FD>
Convenience base class that wires required components for
BaseCrudService implementations
and applies transactional semantics to the generic CRUD read/write flows exposed by the controllers.-
Nested Class Summary
Nested classes/interfaces inherited from interface org.praxisplatform.uischema.service.base.BaseCrudService
BaseCrudService.SavedResult<ID,R> -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractBaseCrudService(BaseCrudRepository<E, ID> repository, Class<E> entityClass) protectedAbstractBaseCrudService(BaseCrudRepository<E, ID> repository, GenericSpecificationsBuilder<E> specificationsBuilder, Class<E> entityClass) -
Method Summary
Modifier and TypeMethodDescriptionbyIdsOptions(Collection<ID> ids) Busca entidades pelos IDs fornecidos e as projeta paraOptionDTO, preservando a ordem da coleção de entrada.byIdsOptionSourceOptions(String sourceKey, Collection<Object> ids) voiddeleteAllById(Iterable<ID> ids) Exclui todos os registros correspondentes aos IDs fornecidos.voiddeleteById(ID id) Exclui uma entidade pelo identificador (ignora quando inexistente).distributionStats(DistributionStatsRequest<FD> request) Executes a canonical distribution aggregate over the filtered dataset.<R> CursorPage<R> filterByCursorMapped(FD filter, org.springframework.data.domain.Sort sort, String after, String before, int size, Function<E, R> mapper) Executa o filtro por cursor e projeta o conteúdo dentro do contexto do service.<R> org.springframework.data.domain.Page<R> filterMappedWithIncludeIds(FD filter, org.springframework.data.domain.Pageable pageable, Collection<ID> includeIds, Function<E, R> mapper) Executa filtro com inclusão opcional de IDs e projeta o conteúdo dentro do contexto do service.filterOptions(FD filter, org.springframework.data.domain.Pageable pageable) Executa o filtro padrão e projeta cada entidade paraOptionDTOusando oOptionMapperconfigurado.filterOptionSourceOptions(String sourceKey, FD filter, String search, org.springframework.data.domain.Pageable pageable, Collection<Object> includeIds) <R> List<R> findAllByIdMapped(Collection<ID> ids, Function<E, R> mapper) Recupera múltiplas entidades pelos seus identificadores e projeta o resultado dentro do contexto do service.<R> List<R> findAllMapped(Function<E, R> mapper) Lista todas as entidades e projeta o resultado dentro do contexto do service.<R> RfindByIdMapped(ID id, Function<E, R> mapper) Recupera uma entidade pelo identificador e projeta o resultado dentro do contexto do service.Retorna o registro de option-sources disponiveis para a entidade do recurso.groupByStats(GroupByStatsRequest<FD> request) Executes a canonical group-by aggregate over the filtered dataset.Persiste uma nova entidade.<R> RsaveMapped(E entity, Function<E, R> mapper) Persiste uma entidade e projeta o resultado dentro do contexto do service.<R> BaseCrudService.SavedResult<ID, R> saveResultMapped(E entity, Function<E, R> mapper) Persiste uma entidade e retorna, no mesmo boundary do service, o ID persistido e a projeção correspondente.timeSeriesStats(TimeSeriesStatsRequest<FD> request) Executes a canonical time-series aggregate over the filtered dataset.Atualiza uma entidade existente.<R> RupdateMapped(ID id, E entity, Function<E, R> mapper) Atualiza uma entidade e projeta o resultado dentro do contexto do service.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.praxisplatform.uischema.service.base.BaseCrudService
computeOptionLabel, extractId, filter, filterByCursor, filterWithIncludeIds, findAll, findAll, findAllById, findById, getDatasetVersion, getDefaultSort, getDistributionStatsSupportMode, getGroupByStatsSupportMode, getNotFoundException, getOptionMapper, getStatsFieldRegistry, getTimeSeriesStatsSupportMode, hasOptionSource, locate, mergeUpdate, resolveOptionSource
-
Constructor Details
-
AbstractBaseCrudService
protected AbstractBaseCrudService(BaseCrudRepository<E, ID> repository, GenericSpecificationsBuilder<E> specificationsBuilder, Class<E> entityClass) -
AbstractBaseCrudService
-
-
Method Details
-
getRepository
- Specified by:
getRepositoryin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO>
-
getSpecificationsBuilder
- Specified by:
getSpecificationsBuilderin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO>
-
getEntityClass
- Specified by:
getEntityClassin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO>
-
getOptionSourceRegistry
Description copied from interface:BaseCrudServiceRetorna o registro de option-sources disponiveis para a entidade do recurso.- Specified by:
getOptionSourceRegistryin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO> - Returns:
- registro de fontes derivadas; por padrao vazio
-
save
Description copied from interface:BaseCrudServicePersiste uma nova entidade.- Specified by:
savein interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO> - Parameters:
entity- instância a ser salva- Returns:
- entidade salva (com ID)
-
saveMapped
Description copied from interface:BaseCrudServicePersiste uma entidade e projeta o resultado dentro do contexto do service.- Specified by:
saveMappedin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO> - Type Parameters:
R- tipo projetado- Parameters:
entity- instância a ser salvamapper- função de projeção- Returns:
- resultado projetado
-
saveResultMapped
@Transactional public <R> BaseCrudService.SavedResult<ID,R> saveResultMapped(E entity, Function<E, R> mapper) Description copied from interface:BaseCrudServicePersiste uma entidade e retorna, no mesmo boundary do service, o ID persistido e a projeção correspondente.- Specified by:
saveResultMappedin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO> - Type Parameters:
R- tipo projetado- Parameters:
entity- instância a ser salvamapper- função de projeção- Returns:
- resultado contendo o ID persistido e o corpo projetado
-
update
Description copied from interface:BaseCrudServiceAtualiza uma entidade existente.- Specified by:
updatein interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO> - Parameters:
id- identificador da entidade a atualizarentity- dados a serem mesclados e persistidos- Returns:
- entidade atualizada
-
updateMapped
Description copied from interface:BaseCrudServiceAtualiza uma entidade e projeta o resultado dentro do contexto do service.- Specified by:
updateMappedin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO> - Type Parameters:
R- tipo projetado- Parameters:
id- identificador da entidade a atualizarentity- dados a serem mesclados e persistidosmapper- função de projeção- Returns:
- resultado projetado
-
deleteById
Description copied from interface:BaseCrudServiceExclui uma entidade pelo identificador (ignora quando inexistente).- Specified by:
deleteByIdin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO> - Parameters:
id- identificador da entidade a excluir
-
deleteAllById
Description copied from interface:BaseCrudServiceExclui todos os registros correspondentes aos IDs fornecidos.- Specified by:
deleteAllByIdin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO> - Parameters:
ids- Coleção de identificadores a serem removidos
-
findByIdMapped
Description copied from interface:BaseCrudServiceRecupera uma entidade pelo identificador e projeta o resultado dentro do contexto do service.- Specified by:
findByIdMappedin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO> - Type Parameters:
R- tipo projetado- Parameters:
id- identificador da entidademapper- função de projeção- Returns:
- resultado projetado
-
findAllMapped
Description copied from interface:BaseCrudServiceLista todas as entidades e projeta o resultado dentro do contexto do service.- Specified by:
findAllMappedin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO> - Type Parameters:
R- tipo projetado- Parameters:
mapper- função de projeção- Returns:
- lista projetada
-
findAllByIdMapped
@Transactional(readOnly=true) public <R> List<R> findAllByIdMapped(Collection<ID> ids, Function<E, R> mapper) Description copied from interface:BaseCrudServiceRecupera múltiplas entidades pelos seus identificadores e projeta o resultado dentro do contexto do service.- Specified by:
findAllByIdMappedin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO> - Type Parameters:
R- tipo projetado- Parameters:
ids- coleção de identificadoresmapper- função de projeção- Returns:
- lista projetada
-
filterMappedWithIncludeIds
@Transactional(readOnly=true) public <R> org.springframework.data.domain.Page<R> filterMappedWithIncludeIds(FD filter, org.springframework.data.domain.Pageable pageable, Collection<ID> includeIds, Function<E, R> mapper) Description copied from interface:BaseCrudServiceExecuta filtro com inclusão opcional de IDs e projeta o conteúdo dentro do contexto do service.- Specified by:
filterMappedWithIncludeIdsin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO> - Type Parameters:
R- tipo projetado- Parameters:
filter- critérios de filtropageable- informações de paginaçãoincludeIds- IDs que devem aparecer no topo da primeira páginamapper- função de projeção- Returns:
- página resultante projetada
-
filterByCursorMapped
@Transactional(readOnly=true) public <R> CursorPage<R> filterByCursorMapped(FD filter, org.springframework.data.domain.Sort sort, String after, String before, int size, Function<E, R> mapper) Description copied from interface:BaseCrudServiceExecuta o filtro por cursor e projeta o conteúdo dentro do contexto do service.- Specified by:
filterByCursorMappedin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO> - Type Parameters:
R- tipo projetado- Parameters:
filter- critérios de filtrosort- ordenação aplicadaafter- cursor para avançarbefore- cursor para retrocedersize- tamanho da páginamapper- função de projeção- Returns:
- página por cursor projetada
-
groupByStats
@Transactional(readOnly=true) public GroupByStatsResponse groupByStats(GroupByStatsRequest<FD> request) Description copied from interface:BaseCrudServiceExecutes a canonical group-by aggregate over the filtered dataset.- Specified by:
groupByStatsin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO> - Parameters:
request- stats request- Returns:
- group-by stats response
-
timeSeriesStats
@Transactional(readOnly=true) public TimeSeriesStatsResponse timeSeriesStats(TimeSeriesStatsRequest<FD> request) Description copied from interface:BaseCrudServiceExecutes a canonical time-series aggregate over the filtered dataset.- Specified by:
timeSeriesStatsin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO> - Parameters:
request- stats request- Returns:
- time-series stats response
-
distributionStats
@Transactional(readOnly=true) public DistributionStatsResponse distributionStats(DistributionStatsRequest<FD> request) Description copied from interface:BaseCrudServiceExecutes a canonical distribution aggregate over the filtered dataset.- Specified by:
distributionStatsin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO> - Parameters:
request- stats request- Returns:
- distribution stats response
-
filterOptions
@Transactional(readOnly=true) public org.springframework.data.domain.Page<OptionDTO<ID>> filterOptions(FD filter, org.springframework.data.domain.Pageable pageable) Description copied from interface:BaseCrudServiceExecuta o filtro padrão e projeta cada entidade paraOptionDTOusando oOptionMapperconfigurado.Em cenários com JPA e carregamento lazy, a expectativa é que a implementação concreta seja provida por
AbstractBaseCrudService, para que a resolução do label ocorra dentro de transação.- Specified by:
filterOptionsin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO> - Parameters:
filter- critérios de filtropageable- informações de paginação- Returns:
- página de opções reduzidas
-
byIdsOptions
Description copied from interface:BaseCrudServiceBusca entidades pelos IDs fornecidos e as projeta paraOptionDTO, preservando a ordem da coleção de entrada.Em cenários com JPA e carregamento lazy, a expectativa é que a implementação concreta seja provida por
AbstractBaseCrudService, para que a resolução do label ocorra dentro de transação.- Specified by:
byIdsOptionsin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO> - Parameters:
ids- identificadores a serem buscados- Returns:
- lista de opções na ordem solicitada
-
filterOptionSourceOptions
@Transactional(readOnly=true) public org.springframework.data.domain.Page<OptionDTO<Object>> filterOptionSourceOptions(String sourceKey, FD filter, String search, org.springframework.data.domain.Pageable pageable, Collection<Object> includeIds) - Specified by:
filterOptionSourceOptionsin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO>
-
byIdsOptionSourceOptions
@Transactional(readOnly=true) public List<OptionDTO<Object>> byIdsOptionSourceOptions(String sourceKey, Collection<Object> ids) - Specified by:
byIdsOptionSourceOptionsin interfaceBaseCrudService<E,D, ID, FD extends GenericFilterDTO>
-