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.
[RESOLVIDO] Selecionar ID a partir da sessão do usuário logado com Spring-Securiry
5 Respostas
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.
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.
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.
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.
Opa cara era isso mesmo que eu esta procurando. me ajudou de mais. Entendi muito bem como vc quis me passa.
Valeu! muito agradecido