Sergio,
Não sei se isso responde a tua pergunta....
/*Definição do EntityManager*/
@PersistenceContext(unitName="ccb_context")
private EntityManager em;
/*Execução da query*/
Query qUserList = em.createNamedQuery("getAllUsers");
userList = new ArrayList<User>();
userList = qUserList.getResultList();
Estou utilizando EJB + hibernate e deixo o EntityManager cuidar da sessão... :)
Att.,
Roger Rayner
Inovação COMEX
Unidade Joinville
U 55 (47) 3802-8110 (novo)
( roger.rayner@totvs.com.br
-----Mensagem original-----
De: java-br@yahoogrupos.com.br [mailto:java-br@yahoogrupos.com.br] Em nome de Sergio Felipe Santiago Moreira
Enviada em: segunda-feira, 9 de abril de 2012 13:51
Para: java-br@yahoogrupos.com.br
Assunto: Re: [java-br] FetchType.Lazy
Eae roger! então cara vamos la!
Eu não estou com o codigo aqui no momento mas eu vou pra facul hj e pego meu not eu mando pra você de la,mas pra ir adiantando vou te passar o conceito que eu usei e você consegue até fazer melhor do que eu fiz,vamos
la:
Me passa como você esta gerenciando suas session,ex: você criou um HibernateUtil ou alguem responsavel pela suas sessions,certo?
me explica como você fez ai te mostro como fiz usando o seu como exemplo.
Vlew aguardo seu retorno.
Em 9 de abril de 2012 11:26, Roger Rayner Cunha Bento < roger.rayner@totvs.com.br> escreveu:
> **
>
>
> Oi Sergio,
>
> Poderia me enviar um exemplo?
>
> Obrigado.
>
> Sergio Felipe Santiago Moreira <sergiofelipesm@ig.com.br> escreveu:
>
>
> Bom dia !
> Bom olha eu vejo que o problema ai é somente seu controle de
> session,você esta fechando a conexao,e se você poe como Lazy a cada
> getAtributo() você vai no banco e consulta,sendo um left join então
> ele quando esta tentando pegar algum atributo ou left das tabelas sua
> sessão ja esta fechada,então te aconselho controlar sua session ,tive
> esse problema de sessions com collection lazy e resolvi utilizando o
> singleton onde gerencia -se a session e com herança,qualquer duvida eu
> posso te mostrar como você poderia fazer.
> valeu
> boa sorte!
>
> Em 7 de abril de 2012 17:42, Roger Rayner Cunha Bento <
> roger.rayner@totvs.com.br> escreveu:
>
> > **
>
> >
> >
> > Boa tarde,
> >
> > Estou com um problema que não estou conseguindo resolver. Já
> > pesquisei na web e não consegui encontrar uma solução. Espero que
> > alguém já tenha passado por isso e possa me ajudar.
> >
> > Tenho duas classes com relacionamento @ManyToMany (definções abaixo).
> >
> > User
> > @ManyToMany(mappedBy="userList", fetch=FetchType.LAZY) private
> > Set<UserGroup> userGroupList = new HashSet<UserGroup>();
> >
> > UserGroup
> > @ManyToMany(fetch=FetchType.LAZY, cascade= {CascadeType.DETACH,
> > CascadeType.PERSIST, CascadeType.MERGE})
> > @JoinTable(name="USER_GROUP_RELAC",
> > joinColumns={@JoinColumn(name="OID_USER_GROUP")},
> > inverseJoinColumns={@JoinColumn(name="OID_USER")})
> > private Set<User> userList = new HashSet<User>();
> >
> > Como podem ver ambas as listas eu coloquei como fetch=FetchType.LAZY
> > pois não quero sobrecarregar a aplicação. Quando vou buscar o meu
> > usuário pelo id (que só irá retornar 1 registro) uso a EJB QL abaixo:
> >
> > @NamedQuery(name="UserById",
> > query="FROM User u LEFT JOIN FETCH u.emailList " + "LEFT JOIN FETCH
> > u.userGroupList " + "where u.user_id like :user_id"),
> >
> > Mesmo utilizando o LEFT JOIN FETCH é retornado o erro abaixo e não
> > sei mais oq fazer.
> >
> > failed to lazily initialize a collection of role:
> > content.UserGroup.userList, no session or session was closed
> >
> > O LEFT JOIN FETCH não deveria carregar minhas coleções? Para evitar
> > o
> erro
> > da sessão já estar fechada? Alguem sabe como me ajudar?
> >
> > Fico no aguardo.
> >
> > Obrigado.
> >
> >
> >
>
> --
> Sergio Felipe Santiago Moreira
> *Site*: http://misistema.zapto.org:8090
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> ------------------------------------
>
>
> Para sair da lista, envie email para:
> java-br-unsubscribe@yahoogroups.com
> Para upload/download de arquivos:
> http://www.yahoogroups.com/files/java-brLinks do Yahoo! Grupos
>
>
>
--
Sergio Felipe Santiago Moreira
*Site*: http://misistema.zapto.org:8090
[As partes desta mensagem que não continham texto foram removidas]
------------------------------------
Para sair da lista, envie email para: java-br-unsubscribe@yahoogroups.com
Para upload/download de arquivos: http://www.yahoogroups.com/files/java-brLinks do Yahoo! Grupos
Para upload/download de arquivos: http://www.yahoogroups.com/files/java-br
0 comentários:
Postar um comentário