Como criar o método para enviar um convite

Pessoal, primeiramente Oi. To com uma dúvida, é o seguinte, to fazendo um programa e cheguei em uma parte que preciso entrar na minha conta, procurar uma pessoa através do seu email e se encontrar enviar um convite de amizade, depois sair dessa conta e entrar na conta que o convite foi enviado para aceitar a solicitação.
O projeto é todo estruturado, fachada, cadastro, repositório, interface…
eu criei o método procurar no repositório, mas não to sabendo como fazer essa parte.
agradeço bastante quem der uma força.

Olá,

Você não especificou muito bem o seu problema mas vamos lá! :wink:
Em um projeto utilizando hibernate criei as classes de negócio semelhante a presente no diagrama abaixo para controlar a parte de envio/recebimento de solicitações de amizade:

image

A classe Amizade contém o usuário que solicitou, o usuário que recebe a solicitação e um status (Aceito, Recusado ou Em espera). Para a solicitação eu crio um registro contendo o usuário solicitante e o usuário que recebe essa solicitação com o status de Espera. Para confirmar a amizade eu altero esse registro para Aceito. Quando é necessário listar os usuários amigos só é necessário buscar os registros que contém usuárioDestino ou usuarioOrigem igual ao usuario logado.

Para buscar os usuários por email, por exemplo, utilizo o método:

public List<Usuario> listUsuariosByEmail(String email) {
  EntityManager em = emf.createEntityManager();
  Query q = em.createQuery(
	"select u from Usuario u where lower(u.email) like concat('%', :email, '%')");
  q.setParameter("email", email);
  return q.getResultList();
}

Você pode consultar o código desenvolvido para criar essa funcionalidade aqui:
SplettPet: Solicitação de amizade
SplettPet: Pesquisas por usuário

Espero ter ajudado! :hugs:

Muito obrigado pela resposta e pelo código no git.

Eu tava fazendo dessa maneira, vou tentar explicar, se não der pra compreender eu mando o código que fica melhor.

Criei 1 classe chamada user, dentro dela alguns atributos, nome, idade… e 1 Arraylist convitesPendentes, esse array é pra armazenar as solicitações. Agora to tentando criar um método dentro da classe User que receba como parâmetro o resultado de uma busca feita no repositório pra procurar o User que eu quero por email.
Esse método na classe User deve enviar o User que está ativo no momento para a lista de convitesPendetes do User que eu encontrei na busca.

Eu não criei uma nova classe amizade.

Da pra fazer com esse raciocínio ou devo criar uma classe amizade ?

Mais uma vez, Obrigado por tirar uma tempo pra responder minha dúvida.