terça-feira, 10 de abril de 2012

Re: [java-br] FetchType.Lazy

·

Ok Roger boa sorte.
Obrigado.

Em 10 de abril de 2012 09:10, Roger Rayner Cunha Bento <
roger.rayner@totvs.com.br> escreveu:

> **
>
>
> Sergio,
>
> Estarei efetuando as alterações levando em consideração seu exemplo.
>
> Se funcionar aviso aqui na lista.
>
> Obrigado.
>
>
> 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 19:56
>
> Para: java-br@yahoogrupos.com.br
> Assunto: Re: [java-br] FetchType.Lazy
>
> Esqueci o JPAUtil que e o responsavel pelo entity manager:
>
> public class JPAUtil {
> private static EntityManagerFactory factory; private static JPAUtil
> jpaInstance; private static EntityManager manager; private static
> PropertieUtil prop=PropertieUtil.getInstance(); private static HashMap<?,
> ?> prp=prop.properties(); static{ try{ //
> JPAUtil.factory=Persistence.createEntityManagerFactory("auto");
> HashMap<String, String> cfg=new HashMap<String, String>(); //
> cfg.put("hibernate.dialect" ,"org.hibernate.dialect.MySQLDialect");
> // cfg.put("hibernate.hbm2ddl.auto","update");
> // cfg.put("hibernate.show_sql","true");
> // cfg.put("hibernate.format_sql","true");
> cfg.put("javax.persistence.jdbc.driver",(String) prp.get(
> Config.DRIVER.name ()));
> cfg.put("javax.persistence.jdbc.url",(String) prp.get(Config.URL.name())+
> prp.get(Config.BANCO.name()));
> cfg.put("javax.persistence.jdbc.user",(String) prp.get(Config.USUARIO.name())); cfg.put("javax.persistence.jdbc.password",(String)prp.get(
> Config.SENHA.name
> ()));
> JPAUtil.factory=Persistence.createEntityManagerFactory("auto",cfg);
> manager=factory.createEntityManager();
> }catch(Exception e){
> JOptionPane.showMessageDialog(null, "Erro ao iniciar configurações de
> banco de dados!","inicialização de banco",JOptionPane.ERROR_MESSAGE);
> System.exit(0);
> }
> }
> public static JPAUtil getInstance(){
> // if(jpaInstance==null){
> // jpaInstance=new JPAUtil();
> // return jpaInstance;
> // }
> jpaInstance=new JPAUtil();
> return jpaInstance;
> }
> public EntityManager getManager() {
> if(!manager.isOpen()){
> manager=factory.createEntityManager();
> }
> return manager;
> }
> public static Session obterSessaoJPA(){
> Session session;
> if (manager.getDelegate() instanceof EntityManagerImpl) {
> EntityManagerImpl entityManagerImpl = (EntityManagerImpl)
> manager.getDelegate();
> session = entityManagerImpl.getSession();
> } else {
> session = (Session) manager.getDelegate();
> }
> return session;
> }
>
> vlew
>
> Em 9 de abril de 2012 16:22, Roger Rayner Cunha Bento <
> roger.rayner@totvs.com.br> escreveu:
>
> > **
>
> >
> >
> > 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
> >
> >
> >
>
> --
> 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 visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/java-br/

<*> Para sair deste grupo, envie um e-mail para:
java-br-unsubscribe@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

0 comentários:

Pague com LPs do Mister Colibri

Pague com LPs do Mister Colibri
Quer comprar celular,Tablet,pen drive, GPS e muito outros produtos e ainda podendo pagar tudo em LPs ?Pois saiba que isso é possível,basta você visitar o site downloadstotal.com e realizar a sua compra com toda tranquilidade e segurança!!!

Hora

Online

Arquivo do Blog