duvida com EJB3  XML
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Autor Mensagem
santos.levi
JavaTeenager

Membro desde: 19/05/2008 16:27:01
Mensagens: 192
Offline

Boa tarde pessoal!
É o seguinte estou em um projeto que usa EJB3 e JSF.
O problema é o seguinte quando quero fazer uma consulta por exemplo de usuarios, ai estou debugando dentro do meu SessionBean eu visualizo os itens que estão na coleção, os usuarios que estão nessa coleção cada um tem um relacionamento por exemplo com endereço, no session bean quando eu estou em modo de debug e vejo os itens da lista mostra os usuarios e os seguintes relacionamentos, mas quando chego no meu managedBean os outros objetos que estão relacionados com esse usuario não aparecem se eu tentar usar por exemplo o endereço eu recebo um NullPointer.
Isso só acontece quando eu Injeto o EntityManeger no session bean e uso query nativa se usar namedQuery funciona legal.
Alguem já passou por isso? como resolvo isso?
[MSN]
clesiojunior
What is classpath?
[Avatar]

Membro desde: 12/08/2005 12:39:01
Mensagens: 6
Offline

O melhor mesmo é utilizar NamedQuery. É padrão no JPA.
Mesmo assim tenta utilizar INNER JOIN ou RIGHT OUTER JOIN (RIGHT JOIN), na nativa.

Assim (exemplo): caso vc queira o endereço de um usuario:

SELECT endereco FROM Usuario as u RIGHT JOIN u.endereco as endereco WHERE u.qualquer = exemplo qualquer;

ou vc pode retornar uma lista de usuarios pelo endereco tal:

SELECT usuarios FROM Endereco as e INNER JOIN e.usuarios as usuarios WHERE e.cidade = brasilia;

Atenciosamente,
Clesio Júnior
Jair Rillo Junior
Moderador
[Avatar]

Membro desde: 29/04/2003 21:19:53
Mensagens: 2524
Localização: São Paulo / Campinas
Offline

O problema pode ser que seu relacionamento está como Lazy. Quando você está no EJB (A Entity está gerenciada pelo EntityManager) e assim você consegue ver o relacionamento. Quando a Entity fica detached (quando foi para o ManagedBean) o relacionamento Lazy que não foi previamente carregado, irá realmente dar problema.

Aconselho dar uma estudada nessa parte de entity gerenciada, detached, new, etc.

Jair Rillo Junior

http://www.jairrillo.com/blog | Twitter | SCJA, SCJP, SCWCD, SCBCD, IBM SOA Associate
 
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Ir para:   
Powered by JForum 2.1.8 © JForum Team