Interface UserRepository
- All Superinterfaces:
org.springframework.data.repository.CrudRepository<UserEntity,,String> org.springframework.data.repository.Repository<UserEntity,,String> RepositoryContract<UserContract>,UserContractRepository
UserRepository, estende as interfaces UserContractRepository e CrudRepository.
- Since:
- 1.0.0
- Author:
- diegoneves
- See Also:
-
UserContractRepositoryCrudRepository
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptiondefault voidDeleta uma entidade pelo seu identificador.findByEmail(String email) Este método busca um usuário pelo email fornecido e retorna umOptionaldeUserEntity.default UserContractfindEntityById(String id) Encontra uma entidade pelo seu identificador.default UserContractfindUserEntityByUserEmail(String userEmail) Este método está na interfaceUserContractRepositorye ele retorna um objetoUserContractao procurar um usuário pelo seu endereço de email.private UserMapperEste método é responsável por criar e retornar uma nova instância deUserMapper.private List<UserContract>mapEntityList(List<UserEntity> entities) Este método é usado para mapear uma lista de objetosUserEntitypara uma lista de objetosUserContract.default UserContractpersist(UserContract entity) Salva uma entidade.default List<UserContract>Encontra todas as entidades de um determinado tipo.private UserEntityEste método retorna uma entidade de usuário com base no ID fornecido.private voidvalidateUserId(String id) Método de validação do ID do usuário.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
-
REQUIRED_USER_ERROR_MESSAGE
-
INVALID_UUID_FORMAT_MESSAGE
-
INVALID_EMAIL_ERROR_MESSAGE
-
-
Method Details
-
findByEmail
Este método busca um usuário pelo email fornecido e retorna umOptionaldeUserEntity. Se nenhum usuário for encontrado com o email fornecido, este método retornará umOptionalvazio.- Parameters:
email- O email do usuário a ser buscado.- Returns:
- um Optional de UserEntity.
-
findEntityById
Description copied from interface:RepositoryContractEncontra uma entidade pelo seu identificador.- Specified by:
findEntityByIdin interfaceRepositoryContract<UserContract>- Parameters:
id- o identificador único da entidade que deve ser procurada.- Returns:
- a entidade encontrada ou
nullse nenhuma entidade com o identificador especificado pôde ser encontrada.
-
retrieveUserEntityById
Este método retorna uma entidade de usuário com base no ID fornecido. Antes de tentar recuperar o usuário, o método valida o ID do usuário fornecido.Depois de validar o ID do usuário, usando o método
validateUserId(String), este método tenta buscar a entidade do usuário. Se a entidade do usuário não existir, retorna null.- Parameters:
id- O ID da entidade do usuário a ser retornada. Não pode ser nulo ou uma String vazia.- Returns:
- A
UserEntityque corresponde ao ID fornecido. Se nenhumaUserEntitycorresponder ao fornecido, este método retorna null. - Throws:
UserEntityFailuresException- Se o ID do usuário fornecido for nulo, vazio ou não for um UUID válido.- See Also:
-
getUserMapper
Este método é responsável por criar e retornar uma nova instância deUserMapper.A classe
UserMapperé uma implementação da interfaceMapperStrategyque fornece funcionalidade para mapear um objetoUserEntity(que é compatível com o modelo de dados do banco) para um objetoUser, que representa o modelo de negócio do sistema. Assim, a classeUserMapperajuda na conversão entre o modelo de dados e o modelo de negócio quando estamos lidando com informações de usuário.- Returns:
- uma nova instância de
UserMapper.
-
validateUserId
Método de validação do ID do usuário. Este método realiza duas verificações principais:- Certifica-se de que o ID do usuário não é nulo ou vazio.
- Certifica-se de que o ID do usuário é um UUID válido.
Caso alguma dessas verificações falhe, uma
UserEntityFailuresExceptionserá lançada.- Parameters:
id- O ID do usuário que deve ser validado.- Throws:
UserEntityFailuresException- Se o ID do usuário for nulo, vazio ou não for um UUID válido.
-
retrieveAll
Description copied from interface:RepositoryContractEncontra todas as entidades de um determinado tipo.- Specified by:
retrieveAllin interfaceRepositoryContract<UserContract>- Returns:
- uma lista contendo todas as entidades ou uma lista vazia se não houver entidades.
-
mapEntityList
Este método é usado para mapear uma lista de objetosUserEntitypara uma lista de objetosUserContract.Se a lista de
UserEntityfornecida é nula ou vazia, o método retorna uma lista vazia imutável. Caso contrário, o método itera sobre esta lista, mapeando cada objetoUserEntitypara sua representação como um objetoUserContract, usandoUserMapper.mapFrom(UserEntity)para realizar a transformação.- Parameters:
entities- uma lista deUserEntitya serem mapeados para objetosUserContract. Pode ser nula ou vazia.- Returns:
- uma lista de objetos
UserContractcorrespondente aosUserEntity's fornecidos. Se oUserEntityfor nulo ou vazio, uma lista vazia imutável é retornada.
-
persist
Description copied from interface:RepositoryContractSalva uma entidade.- Specified by:
persistin interfaceRepositoryContract<UserContract>- Parameters:
entity- a entidade que deve ser salva.- Returns:
- a entidade salva.
-
deleteEntityById
Description copied from interface:RepositoryContractDeleta uma entidade pelo seu identificador.- Specified by:
deleteEntityByIdin interfaceRepositoryContract<UserContract>- Parameters:
id- o identificador único da entidade que deve ser deletada.
-
findUserEntityByUserEmail
Description copied from interface:UserContractRepositoryEste método está na interfaceUserContractRepositorye ele retorna um objetoUserContractao procurar um usuário pelo seu endereço de email.Em situações reais, esta função pode ser usada para recuperar as informações de um usuário para fins de login ou registro. Quando estamos implementando um processo de login, podemos procurar o usuário que se encontra com o endereço de email fornecido. Se pudermos encontrar tal usuário, recuperamos os detalhes do usuário e o habilitamos para o próximo passo no processo de login.
Mesmo caso para o processo de registro, procuramos o email e vemos se algum usuário já está registrado com o endereço de email fornecido. Se for esse o caso, não permitimos mais o processo de registro e sugerimos que o usuário faça login em vez de se registrar.
Para implementar essa função na classe de repositório real, podemos usar como base um método de busca por email fornecido pelo Spring Data JPA.
- Specified by:
findUserEntityByUserEmailin interfaceUserContractRepository- Parameters:
userEmail- endereço de email do usuário como uma String. Utilizado para procurar um usuário no banco de dados. Ele não pode ser nulo ou vazio.- Returns:
- um
UserContractque representa as informações de usuário correspondentes ao email. Se nenhum usuário for encontrado com o email fornecido, retornará um valor nulo. - See Also:
-