Como impedir um LazyInitializationException?

3 respostas
Pilantra

Olá pessoal.

Estou com um problemão no sistema. Tenho um XML que mapeia a classe de entidade:

<hibernate-mapping package="br.com.winesys.cafecolonial.controleestoque.estoque.venda">
    <class name="Caixa" table="caixa">
        <id name="id" type="java.lang.Long" column="id">
            <generator class="native"/>
        </id>

        <property name="data" type="java.util.Date"/>
        <property name="estado" type="java.lang.Integer"/>
        <property name="valorAbertura" type="java.lang.Double"/>
        <property name="observacoes" type="java.lang.String"/>
        <many-to-one name="usuario" class="br.com.winesys.cafecolonial.controleestoque.usuario.Usuario" column="usuario" lazy="false"/>

        <list name="vendas" inverse="true" lazy="false" outer-join="true">
            <key column="caixa"/>
            <list-index column="id"/>
            <one-to-many class="Venda"/>
        </list>

        <list name="contas" inverse="true" lazy="false" outer-join="true">
            <key column="caixa"/>
            <list-index column="id"/>
            <one-to-many class="br.com.winesys.cafecolonial.controleestoque.cliente.PagamentoConta"/>
        </list>

        <list name="movimentacoes" inverse="true" lazy="false" outer-join="true">
            <key column="caixa"/>
            <list-index column="id"/>
            <one-to-many class="MovimentacaoCaixa"/>
        </list>

    </class>
</hibernate-mapping>

E quando eu faço uma consulta para gerar um relatório, ele dá LazyInitializationException: illegal access to loading collection.

O que é preciso fazer para evitar esse erro?

Muito grato desde já.

3 Respostas

D

Amigo, só pesquisar no fórum por LazyInitializationException, que isso é pra lá de comum no Hibernate e com certeza encontrará soluções.
Inclusive uma boa explicação para o seu problema:

Bons códigos.

bruno_savi

olá meu amigo…
se tu estiver usando hibernate para web

utilize o filtro do hibernate

http://www.hibernate.org/43.html

ou carregue suas collections em modo eager.

Pilantra

ae galera, eeu descobri o problema hehe!!! Na verdade esta dando estou na memória porque a lista que retorna é muito grande. A consulta ultrapassava os 2 mil registros, dae eu aumentei o heap e funcionou hehe.

Criado 20 de dezembro de 2008
Ultima resposta 21 de dez. de 2008
Respostas 3
Participantes 3