Ajuda! - persistencia entre objetos

1 resposta
F

Bom dia pessoal!!

estou com o seguinte problema, pesquisei em vários lugares e nada… será q alguem já passou por isso…

eu tenho uma entidade A que possue um objeto X, esse objeto X possue um outro objeto Y. estão mapeadas certinhas…

quando eu visualizo a aplicação trabalhando com a etidade A, na tabela eu mostro um atributo do meu objeto Y, quando eu executo a primeira vez esta certinho, mas apos fazer qq coisa ele dá o seguinte erro:

ERROR LazyInitializationException:19 - could not initialize proxy - no Session
org.hibernate.LazyInitializationException: could not initialize proxy - no Session

minha classe principal

...
   @OneToMany(fetch = FetchType.LAZY, mappedBy = "cliente")
   private List<empresa> empresas;
....

classe empresa

...
       private String descricao;
       @ManyToOne(fetch = FetchType.LAZY)
	private Cliente cliente;
	@ManyToOne(fetch = FetchType.LAZY)
	private TipoEmpresa tipoEmpresa;
.....

classe tipo empresa

...
       private String descricao;
       @OneToMany(fetch = FetchType.LAZY, mappedBy = "tipoEmpresa")
	private List<Empresa> empresas;
.....

o q dá o erro é quando eu trabalho com o programa cliente e quero mostrar a descrição do tipo empresa dele… :?

obrigada!!

1 Resposta

Guilherme_Gomes

A entidade que você está mexendo está ligada a uma sessão que já foi fechada. Existem 3 jeitos de resolver isso:

  1. Manter a sessão aberta até após essa operação.
  2. Ligar a entidade a uma nova sessão, usando um dao.merge() ou dao.update()…
  3. Tirar o LAZY da variável que está tentando acessar.

Como não sei mais nada sobre sua aplicação, não consigo exemplificar melhor.

Criado 22 de abril de 2009
Ultima resposta 22 de abr. de 2009
Respostas 1
Participantes 2