Interface ShelterRepository
- All Superinterfaces:
org.springframework.data.repository.CrudRepository<ShelterEntity,,String> org.springframework.data.repository.Repository<ShelterEntity,,String> RepositoryContract<ShelterContract>,ShelterContractRepository
Shelter).
Faz uso de interfaces do Spring Data JPA para implementação do CRUD (Criação, Leitura, Atualização e Deleção) padrão, além de herdar de um contrato específico do Shelter para implementar suas próprias operações básicas (Encontrar por ID, Buscar todas, Persistir e Deletar por ID).
Mecanismos de mapeamento são usados para desacoplar a conversão entre entidades JPA e objetos de domínio.
- Since:
- 1.0.0
- Author:
- diegoneves
- See Also:
-
ShelterContractRepositoryCrudRepository
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptiondefault voidEste método é usado para excluir uma entidadeShelterEntitypelo ID.org.springframework.data.domain.Page<ShelterEntity>findAll(org.springframework.data.domain.Pageable pageable) Este método é usado para buscar todos os abrigos cadastrados e devolvê-los paginados.default ShelterContractfindEntityById(String id) Este método é usado para encontrar e retornar uma entidadeShelterEntitypelo ID.findShelterEntitiesByResponsibleUser_Email(String responsibleUserEmail) Este método é usado para buscar uma entidadeShelterpelo e-mail do usuário responsável.private ShelterEntityEste método privado tem como objetivo recuperar um objetoShelterEntitycom base no id fornecido.private ShelterMapperRetorna uma nova instância doMapperStrategypara mapear uma entidadeShelterEntitypara a classe de domínioShelter.private List<ShelterContract>mapEntityList(List<ShelterEntity> entities) Recebe uma lista de entidadesShelterEntity, realiza o mapeamento das instâncias deShelterEntityparaSheltere retorna uma lista de Shelters.default ShelterContractpersist(ShelterContract entity) Persiste uma instância deShelterContractna representação do banco de dados.default List<ShelterContract>Recupera todos os abrigos do banco de dados.private voidvalidateId(String id) Valida o valor de ID (identificador) fornecido.Methods inherited from interface org.springframework.data.repository.CrudRepository
count, delete, deleteAll, deleteAll, deleteAllById, deleteById, existsById, findAll, findAllById, findById, save, saveAll
-
Field Details
-
INVALID_ID_MESSAGE
-
SHELTER_ERROR_MESSAGE
-
INVALID_UUID_FORMAT_MESSAGE
-
-
Method Details
-
getShelterMapper
Retorna uma nova instância doMapperStrategypara mapear uma entidadeShelterEntitypara a classe de domínioShelter. OMapperStrategyé uma estratégia de design que desacopla a conversão de objeto para objeto para uma complexidade reduzida e manutenção mais fácil.- Returns:
- uma nova instância de
ShelterMapperque implementa a interfaceMapperStrategy
-
validateId
Valida o valor de ID (identificador) fornecido. A validação ocorre em duas etapas: 1. Verifica se o ID fornecido não é nulo e nem vazio, lançando uma exceção do tipoShelterEntityFailuresExceptioncom uma mensagem de erro correspondente se a validação falhar. 2. Verifica se o ID fornecido é um UUID válido, lançando uma exceção do tipoShelterEntityFailuresExceptioncom a causa original da falha se a validação falhar. Note que este método é privado e deve ser usado apenas dentro da interfaceShelterRepository.- Parameters:
id- O ID que será validado. Deve ser uma string não nula e não vazia representando um UUID válido.- Throws:
ShelterEntityFailuresException- se o ID fornecido for nulo, vazio ou não for um UUID válido.- See Also:
-
mapEntityList
Recebe uma lista de entidadesShelterEntity, realiza o mapeamento das instâncias deShelterEntityparaSheltere retorna uma lista de Shelters. Este método é particularmente útil na conversão de entidades do banco de dados para objetos de domínio, para uso em outras partes da aplicação.- Parameters:
entities- Uma lista de instâncias deShelterEntityque se pretende mapear para instâncias deShelter- Returns:
- Uma lista de instâncias de
ShelterContractobtidas a partir do mapeamento das entidades recebidas. Se a lista de entrada for vazia, o método irá retornar uma lista vazia. - See Also:
-
findEntityById
Este método é usado para encontrar e retornar uma entidadeShelterEntitypelo ID.Primeiro, é executada a função findById do Repositório do Spring, que retorna um
OptionaldeShelterEntity. Então verifica-se se oOptionalestá vazio. Se estiver vazio, significa que nenhuma entidade foi encontrada com o ID fornecido, e o método retornanull. Se oOptionalnão estiver vazio, o método tenta mapear aShelterEntityencontrada para uma instância deShelterContract.Uma
ShelterCreationFailureExceptionpode ser lançada durante o mapeamento. Se isso acontecer, o método lança uma novaShelterEntityFailuresExceptioncom uma mensagem de erro adequada.- Specified by:
findEntityByIdin interfaceRepositoryContract<ShelterContract>- Parameters:
id- A String que representa o ID único da entidadeShelterEntitya ser encontrada. Deve ser um valor não nulo e não vazio.- Returns:
- Uma instância de
ShelterContractque representa a entidadeSheltermapeada daShelterEntityencontrada. Se nenhuma entidade for encontrada com o id fornecido, o método retornará null. - Throws:
ShelterEntityFailuresException- se ocorrer uma exceçãoShelterCreationFailureExceptiondurante o mapeamento da entidadeShelterEntitypara a instância deShelterContract.
-
getShelterEntityById
Este método privado tem como objetivo recuperar um objetoShelterEntitycom base no id fornecido. Ele faz isso primeiro validando o id fornecido usando o métodovalidateId(String id). A validação garante que o id não seja nulo nem vazio e que seja um UUID válido. Caso contrário, uma exceçãoShelterEntityFailuresExceptioné lançada.Após a validação bem-sucedida do id, o método
findById(String id)é chamado para obter oOptionaldeShelterEntitycorrespondente ao id fornecido.Se o
Optionalestiver presente, o valor é retornado. Caso contrário,nullé retornado.- Parameters:
id- A string que representa o UUID da entidadeShelterEntitya ser recuperada. Deve ser um UUID válido. Caso contrário, uma exceçãoShelterEntityFailuresExceptionserá lançada.- Returns:
- um objeto
ShelterEntitycorrespondente ao id fornecido ounullse nenhumShelterEntitycorresponder ao id fornecido. - Throws:
ShelterEntityFailuresException- Se o id fornecido for nulo, vazio ou não for um UUID válido.- See Also:
-
retrieveAll
Recupera todos os abrigos do banco de dados.Esse método recupera todas as entidades de
ShelterEntitypresentes no banco de dados, usando o métodofindAllda interfaceCrudRepository. Em seguida, realiza o mapeamento dessas entidades para o contrato de abrigoShelterContract, usando a funçãomapEntityList. Portanto, este método é responsável por converter as entidades de abrigo representadas no banco de dados em contratos de abrigo que podem ser usados na lógica de negócios da aplicação.- Specified by:
retrieveAllin interfaceRepositoryContract<ShelterContract>- Returns:
- Uma lista de contratos de abrigo
ShelterContract. Se não houver entidades de abrigo no banco de dados, retorna uma lista vazia.
-
persist
Persiste uma instância deShelterContractna representação do banco de dados.Primeiro, o método mapeia a instância de
ShelterContractfornecida para seu equivalenteShelterEntity. A conversão é feita usando uma instância deShelterEntityMapper.O
ShelterEntityresultante é então passado para o métodosaveda interfaceCrudRepository. Este método salva a entidade no banco de dados e retorna a entidade persistida.Finalmente, a
ShelterEntitypersistida é mapeada de volta para umShelterContractusando uma instância deShelterMapper. EsteShelterContractmapeado é então retornado.Este método é uma implementação direta da operação padrão de persistência fornecida pela interface
CrudRepository.- Specified by:
persistin interfaceRepositoryContract<ShelterContract>- Parameters:
entity- A instância deShelterContractque será persistida. Deve ser um valor não nulo.- Returns:
- uma instância de
ShelterContractque representa a entidade persistida. - Throws:
ShelterEntityFailuresException- se a entidade fornecida for nula.- See Also:
-
CrudRepository
-
deleteEntityById
Este método é usado para excluir uma entidadeShelterEntitypelo ID.Primeiramente, o método tenta recuperar a entidade
ShelterEntitycorrespondente ao ID fornecido por meio do métodogetShelterEntityById(String id). Se o método não conseguir encontrar qualquer entidadeShelterEntitycorrespondente ao ID fornecido, o método termina e não realiza nenhuma ação.Se o método
getShelterEntityById(String id)retornar uma entidade válida, essa entidade é passada para o métododelete(ShelterEntity targetEntity), que se encarrega de excluir a entidade do banco de dados.Este método é uma extensão direta do método
delete(ID id)da interfaceCrudRepository.- Specified by:
deleteEntityByIdin interfaceRepositoryContract<ShelterContract>- Parameters:
id- A String que representa o ID único da entidadeShelterEntitya ser excluída. Deve ser um valor não nulo e não vazio.- See Also:
-
findShelterEntitiesByResponsibleUser_Email
Este método é usado para buscar uma entidadeShelterpelo e-mail do usuário responsável.- Parameters:
responsibleUserEmail- O e-mail do usuário responsável. Este é um parâmetro de entrada usado para filtrar a busca pela entidade Shelter. Deve ser um e-mail válido em formato de string.- Returns:
- Um objeto
Optionalque inclui a instância deShelterEntityse o usuário responsável com o e-mail fornecido for encontrado. Se não houver uma correspondência para o e-mail fornecido, umOptionalvazio será retornado. Note queOptionalé usado para evitar erros deNullPointerException. - Throws:
IllegalArgumentException- se o parâmetro de e-mail fornecido for nulo, vazio ou não em um formato de e-mail válido.
-
findAll
org.springframework.data.domain.Page<ShelterEntity> findAll(org.springframework.data.domain.Pageable pageable) Este método é usado para buscar todos os abrigos cadastrados e devolvê-los paginados.Esse método recupera todas as entidades de
ShelterEntitypresentes no banco de dados, usando o método semelhante aofindAll. No entanto, ele recebe um parâmetroPageablepara que possa ser feita a paginação e também a ordenação (sort) de todos os shelters.- Returns:
- Um
Pagede todos osShelterEntityregistrados no banco de dados. Se não houver entidades de abrigo no banco de dados, retorna uma lista vazia.
-