o objeto cidade vem com todos os atributos nulos, ms o handler dele vem todo preenchido, alguém sabe pq?? e mesmo eu dando um getById, q recupero pelo id, continua assim, mas ele não está nulo, mas não consigo usar suas propriedades…
Objetos carregados de maneiras Lazy funcionam de maneira diferente, ele só recupera um atributo do banco no momento em que esse atributo for utilizado.
caso ocorra um caso em que você tente acessar o atributo sem uma conexão aberta, será lançada uma LazyInitializationException.
eu sei, mas quando eu dou um cidade = facade.getCidadeById(cidade.getId());
ele recupera objeto individualmente… então ele teria que ser recuperado.
Rodrigo_Sasaki
winigma:
eu sei, mas quando eu dou um cidade = facade.getCidadeById(cidade.getId());
ele recupera objeto individualmente… então ele teria que ser recuperado.
Esse seu “teria” depende de muitos fatores… Eu digo que ele “poderia” ser completamente carregado.
isso vai depender do seu mapeamento e/ou da implementação do seu método.
W
winigma
meu metodo getById:
publicCidadegetById(Serializablearg){
HQLQuery<Cidade>hql=newHQLQuery<Cidade>(entityManager);hql.append("from Cidade c");hql.appendEqual("c.id",arg);Cidadecidade=hql.getSingleResult();returncidade;}
viu???
W
winigma
Referente ao artigo, não dar erro, não há exception… só fica no handler mesmo… atributos nulos
Hebert_Coelho
winigma:
Referente ao artigo, não dar erro, não há exception… só fica no handler mesmo… atributos nulos
Mesmo que não dê o erro, o conceito prevalece. Objeto lazy não carrega desse modo.
Rodrigo_Sasaki
Só será lançada uma exceção se você tentar navegar para o atributo sem uma conexão aberta, foi isso que eu disse.
E sua query também não quer dizer nada, é necessário ver o mapeamento da entidade.
essa a outra parte da outra entidade que se liga a cidade, puts que problema chato nem passando o id manualmente e fazendo o metodo, o objeto carrega,...
Rodrigo_Sasaki
Cidade que está vindo com os atributos null?
eu nunca vi esse HQLQuery, então não sei como ele funciona.
W
winigma
hqlQuery é hql componentizado… releve isso, ele um select normal e um where pelo id
W
winigma
como eu disse cidade vem com os ATRIBUTOS NULOS, mas o handler vem preenchido… com os valores dos atributos
Rodrigo_Sasaki
Isso é a definição do Lazy.
Agora se fosse JPA, os atributos que não estão relacionados com anotações *ToMany ou marcados explicitamente como lazy, deveriam vir carregados, como o nome, a sigla e o estado.
W
winigma
não sei mais ql o problema… mesmo se eu pegar cidade isoladamente no método e passar na marretada por exemplo id, ele não carrega, continua vindo nulos, agora no editar cidade uma outra tela ele carrega,… mesmo método getById…