Erro ao carregar um objeto já carregado agora junto com uma lista

0 respostas
LeandroRSilva

Olá…
Meu problema, muito estranho… é o seguinte:

tenho as classes: Servico, Pessoa, Permissao… em Permissao existe, entre outros, dois atributos: Servico servico; Pessoa pessoa…

quando executo qualquer dos dois NamedQuery’s abaixo:

@NamedQuery(name="Permissao.getPessoasPermitidas",
            query="SELECT pp FROM Permissao p JOIN p.pessoa pp WHERE p.servico = :servico order by pp.nome")                
            
    ,
    
    @NamedQuery(name="Permissao.getPessoasPermitidas1",
            query="SELECT p.pessoa FROM Permissao p WHERE p.servico = :servico order by p.pessoa")

obtenho uma Collection normalmente… até ai tudo bem… retorno para o flex… fecho o EntityManager no final da Listener da requisição e beleza…

preencho uma DataGrid de boa…

A questão é… nesse ponto tem uma pessoa logada… para essa pessoa logar foi executado no inicio da execução

public Pessoa login(String senha, String login) {

...
      Pessoa pessoa = findByLogin(login);
...

return pessoa;

}

Até ai beleza também…

Saca só… na listagem que sitei acima a lista vem corretissima e todos os objetos sao carregados…

O problema é: se tenho uma lista por exemplo de 100 pessoas e uma dessas pessoas é aquela que foi dada um find antes, ou seja, a que esta logada… a lista vem certinha com 100 objetos, porém 99 carregados e aquele que foi dado um findByLogin(login) antes…

vem com javassist lazy initializer… ai já viu né… no DataGrid… tudo certo… e uma linha lá escrito [object object]…


Curiozidade: Porque só o objeto que já foi dado um findByLogin(login) nele antes é que aparece na List, antes mesmo de ir para o Flex, como sendo da classe Pessoa_$$_javassist_0 e todos os outros que o Hibernate ainda não haviam sido carregados em outro momento, vem certo, ou seja, da classe Pessoa. Vejo isso através do Debug. Há!!! E se na lista não está presente o usuário já buscado uma vez pelo find(), nunca dá problema.

Obrigado pessoal…

Criado 27 de setembro de 2010
Respostas 0
Participantes 1