Olá pessoal! Estou com um problema que pesquisando na net é um pouco comum porem mesmo assim não consegui resolve-lo com as referencias encontradas por isso estou postando aqui
O erro é este:
Exception in thread "main" org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: br.com.zean.model.Texto.traducao, no session or session was closed
O LazyInitializationException é porque eu coloquei o LAZY ao invez de EAGER no meu mapeamento com anotações, eu até tentei forçar colocando a ManagerFactory em um Singleton e abrindo uma transaction antes de ele dar o GET... alguem tem alguma solução?
[]s
@OneToMany(mappedBy="texto",cascade=CascadeType.ALL,fetch=FetchType.LAZY)privateList<TextoLingua>traducao;/** Retorna a traducao dos textos */publicList<TextoLingua>getTraducao(){EntityManagerentityManager=Sistema.getSistema().getManagerFactory().createEntityManager();entityManager.getTransaction().begin();entityManager.flush();List<TextoLingua>a=traducao;entityManager.getTransaction().commit();entityManager.close();returna;}
eu acho que você tem uns mapeamentos que tem listas, ou many-to-one, e em outro lugar vc está buscando eles… como o lazy está true, dá erro mesmo! tenta colocar ele false
Thiago_Ananias
Eu sei que o erro ocorre porque esta LAZY, não quero que seja EAGER porque isso seria carregar muuuuuuitas coisas que estao interligadas que não precisam, só quero que carregue o que eu vou usar, já pesquisei algumas maneiras de fazer isso…mas ainda não obtive sucesso!!
Gente me desculpa se vou fazer uma pergunta idiota mas tenho que faze-la!! Esse negocio funciona no Tomcat? vi alguns exemplos e o passoal sempre fala do JBOSS e tals…isso corresponde?
[]s
T
Tecnoage
esse negócio oq??? os dois “FUNFAM”
D
djemacao
Thiago Ananias:
Gente me desculpa se vou fazer uma pergunta idiota mas tenho que faze-la!! Esse negocio funciona no Tomcat? vi alguns exemplos e o passoal sempre fala do JBOSS e tals…isso corresponde?
[]s
Bom, vou te responder mais claramente:
[list]Se for fazer na mão, crie um Filtro ou um Listener, mantendo a sessão aberta “in view”.[/list]
[list]Caso não queira esse trabalho, que particularmente acho desnecessário mesmo, faça usando o Spring.[/list]
Quanto ao JBoss, Tomcat, GlassFIsh, não pense que não funciona. Se você estiver usando EJB 3 (com Hibernate), ai sim, somente Application Server (JBoss, GlassFish e etc).
Bons códigos
Thiago_Ananias
opa djemacao é por isso que me confundi! O problema é que eu vou trabalhar com JSF! Bom! O jeito vai ser estudar sobre EJB 3… tow boiando por causa disso ainda não tenho este fundamento que parece ser essencial para todos que programam em Web pra Java! mas obrigadoa todos!
vouter que estudar!
[]s
Thiago_Ananias
Galera, desde o dia que fiz este ultimo post estou tentando resolver este problema, fui atraz de um Server Application, fiz funcionar o JBoss com o Eclipse depois de muito esforço porem acabei decidindo usar o Netbeans porque já vinha junto o Glassfish e me facilitou muito o desenvolvimento(só é mais pesadinho) Deixando isto de lado, até peguei um PDF "MasteringEJB4" e tentei colocar os exemplos na pratica mas naum funcionaram olhem: