[RESOLVIDO] Selecionar ID a partir da sessão do usuário logado com Spring-Securiry

5 respostas
L

Estou com um pequeno problema já dei uma pesquisa mas não encontrei nada tão claro que pudesse me ajudar.
É o seguinte, eu estou desenvolvendo uma atividade acadêmica com JSF+Hibernate+Spring_Security, o meu problema é esse: Eu tenho que pegar o id do usuário logado na sessão do spring, eu já consegui pegar qual é o usuário logado então a partir dele eu tenho que pegar o id do mesmo no banco. Pesquisei e vi que da pra fazer com HQL. Esse é o porem, como eu posso fazer isso passando o usuario logado que está em um objeto user que criei.

5 Respostas

L

Opa @Leonardo_Almeida_Cam.

Cara, ficou um pouco confuso pra mim. Você disse que tem o usuário logado, mas qual informação você tem? Um código? O que é?
Dependendo o que for, é simples: você vai usar essa informação para criar sua query.

Se puder explicar melhor, talvez eu consiga te ajudar de uma melhor forma também.

Abraço.

L

Olá @Luan.Lucas. Muito Obrigado por me responder.
Eu tenho o usuário logado, e consegui pegar o seu NickName(Nome de Usuário), so que, o que eu qro é o seu ID que está salvo em um DB, vi q da para pegar esse ID fazendo uma QUERY, passando o NOME DE USUARIO que eu já peguei na Sessão do Spring_Security.

L

A verdade é que eu consegui pegar o NOME DO USUÁRIO, só que a partir dele eu qro seu ID que está salvo no DB.

L

Cara, infelizmente não sou conhecedor do Spring, então vou conseguir te ajudar apenas no que diz respeito a query. Lembrando que pode haver alguma forma melhor de você adquirir a informação que você precisa usando o Spring.

A respeito da query… Basta você pegar o seu entity manager e criar a query da seguinte forma:
entityManager.createQuery("SELECT e.id FROM Entidade e WHERE e.nomeDoUsuario = :nomeDoUsuario") .setParameter("nomeDoUsuario", nomeDoUsuario).- getResultList() ou getSingleResult();

Explicando: você vai selecionar o id de uma tabela cujo nome é “Entidade” através do campo “nomeDoUsuario” tendo como parâmetro “nomeDoUsuario”. O segundo método é usado para definir o valor desse parâmetro que foi definido na query e que provavelmente vai ser passado por parâmetro no seu método. Os métodos de retorno - getResultList ou getSingleResult - vão depender da modelagem da sua tabela, caso essa coluna seja uma chave primária você pode usar o getSingleResult, caso contrário terá de ser getResultList.
Espero que eu tenha conseguido explicar.

Abraço.

L

Opa cara era isso mesmo que eu esta procurando. me ajudou de mais. Entendi muito bem como vc quis me passa.
Valeu! muito agradecido

Criado 2 de junho de 2017
Ultima resposta 4 de jun. de 2017
Respostas 5
Participantes 2