@Entity@NamedQueries(value={@NamedQuery(name="usuarioGrupo",query="select g from user u, grupo g where g.usuario = u and u.usuario= :usuario")})@Table(schema="gruposAcesso",name="grupo")
Este código está colocado antes da implementação da classe.
Eu preciso criar um método que pegue exatamente isto, o grupo ao qual o usuário foi inserido.
Como interajo com este código acima? Como ficaria meu método para pegar o grupo pelo id do usuario?
Desculpe se a pergunta for básica para muitos.
Um abraço!
Ok, vc está certo.
Encontrei a classe e percebi que ela usava este código, então criei o seguinte código, mas ele me retorna um nullPointerException, mesmo tendo um grupo associado.
u é um List já preenchido com os usuários cadastrados.
GrupoPersist é a classe que pega os grupos de usuário.
R
rcost4
pq como esqueci de dizer, o retorno de getGrupoPorUsuario() é um List. Pois anteriormente um usuário podia estar em mais de um grupo (sinceramente, não me pergunte porque, também não entendi), agora, como um usuário só pode estar em um único grupo eu pego apenas o da primeira posição, 0.
javax.servlet.ServletException: #{ManagerBean.verUsuariosPorNome}: Exception [TOPLINK-7242] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.ValidationException
Exception Description: An attempt was made to traverse a relationship using indirection that had a null Session. This often occurs when an entity with an uninstantiated LAZY relationship is serialized and that lazy relationship is traversed after serialization. To avoid this issue, instantiate the LAZY relationship prior to serialization.
R
rcost4
desculpe, este erro não está acontecendo mais, agora apenas:
Se o projeto já estiver criado, vc deve ter um método em alguma classe que acessa o banco que usa essa namedQuery.
Se for um projeto seu, novo, e vc escreveu isso, vc deve estar vendo algo sobre JPA, certo? Então agora vc precisa criar uma classe que conecta no banco usando e executa sua namedQuery; esta classe vai ter um EntityManager que vai controlar sua transação e executar a query no banco.
É esse seu problema?
R
rdgc
Coloca o stackTrace aqui no fórum pra gente ver…
Mas, por enquanto, pq vc não faz seu código assim:
// u - List<Usuario>
GrupoPersist g = new GrupoPersist();
for(Usuario usuario : u){
String s = g.getGrupoPorUsuario(usuario.getIdUsuario()).get(0).getNomeGrupo();
usuario.setNomeGrupo(s);
}
R
rdgc
Em relação a sua lista, blz, o que eu alterei no código foi a utilização do usuario no for.
pelo debug vc não consegue ver se todos os objetos estão carregados?
e a exception? coloca aqui no forum…
R
rdgc
rcost4:
desculpe, este erro não está acontecendo mais, agora apenas: