Ajuda! - persistencia entre objetos

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!!

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.