Um lado com EAGER:
[code]class Simulacao …
@OneToMany(cascade = CascadeType.ALL, mappedBy = “simulacao”)
private List<Compartimento> compartimentoList;
class Compartimento …
@JoinColumn(name = “simulacao”, referencedColumnName = “id”, nullable = false)
@ManyToOne(optional = false, cascade=CascadeType.ALL, fetch=FetchType.EAGER)
private Simulacao simulacao;
[/code]
Faça a busca e encontro meu objeto simulação.
Após isso tento salvar meu objeto simulação, ao fazer isso confiro se minha lista de compartimentos está vazia:
if (simulacao.getCompartimentoList() != null) {
...
}
Dá esse erro:
26/10/2009 17:39:16 org.hibernate.LazyInitializationException <init>
SEVERE: failed to lazily initialize a collection of role: embrapa.entity.Simulacao.compartimentoList, no session or session was closed
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: embrapa.entity.Simulacao.compartimentoList, no session or session was closed
Hibernate: select simulacao0_.id as id11_7_, simulacao0_.clima as clima11_7_, simulacao0_.descricao as descricao11_7_, simulacao0_.nome as nome11_7_, simulacao0_.pesticida as pesticida11_7_, simulacao0_.solo as solo11_7_, clima1_.id as id0_0_, clima1_.diafin as diafin0_0_, clima1_.diaini as diaini0_0_, clima1_.evaporef as evaporef0_0_, clima1_.simulacao as simulacao0_0_, climadiali2_.clima as clima9_, climadiali2_.id as id9_, climadiali2_.id as id3_1_, climadiali2_.chuva as chuva3_1_, climadiali2_.clima as clima3_1_, climadiali2_.dia as dia3_1_, climadiali2_.evaporef as evaporef3_1_, climadiali2_.rad as rad3_1_, climadiali2_.tempmax as tempmax3_1_, climadiali2_.tempmin as tempmin3_1_, climadiali2_.umidade as umidade3_1_, climadiali2_.vento as vento3_1_, simulacao3_.id as id11_2_, simulacao3_.clima as clima11_2_, simulacao3_.descricao as descricao11_2_, simulacao3_.nome as nome11_2_, simulacao3_.pesticida as pesticida11_2_, simulacao3_.solo as solo11_2_, pesticida4_.id as id6_3_, pesticida4_.coefdeg as coefdeg6_3_, pesticida4_.coefdifu as coefdifu6_3_, pesticida4_.coefpart as coefpart6_3_, pesticida4_.eneati as eneati6_3_, pesticida4_.expfre as expfre6_3_, pesticida4_.numap as numap6_3_, pesticida4_.simulacao as simulacao6_3_, pesticida4_.tempref as tempref6_3_, pesticida4_.umiref as umiref6_3_, pesticida4_.walker as walker6_3_, simulacao5_.id as id11_4_, simulacao5_.clima as clima11_4_, simulacao5_.descricao as descricao11_4_, simulacao5_.nome as nome11_4_, simulacao5_.pesticida as pesticida11_4_, simulacao5_.solo as solo11_4_, solo6_.id as id12_5_, solo6_.altlam as altlam12_5_, solo6_.numcompartimentos as numcompa3_12_5_, solo6_.numhorizontes as numhoriz4_12_5_, solo6_.profundidade as profundi5_12_5_, solo6_.simulacao as simulacao12_5_, simulacao7_.id as id11_6_, simulacao7_.clima as clima11_6_, simulacao7_.descricao as descricao11_6_, simulacao7_.nome as nome11_6_, simulacao7_.pesticida as pesticida11_6_, simulacao7_.solo as solo11_6_ from simulador.public.simulacao simulacao0_ left outer join simulador.public.clima clima1_ on simulacao0_.clima=clima1_.id left outer join simulador.public.climadia climadiali2_ on clima1_.id=climadiali2_.clima left outer join simulador.public.simulacao simulacao3_ on clima1_.simulacao=simulacao3_.id left outer join simulador.public.pesticida pesticida4_ on simulacao3_.pesticida=pesticida4_.id left outer join simulador.public.simulacao simulacao5_ on pesticida4_.simulacao=simulacao5_.id left outer join simulador.public.solo solo6_ on simulacao5_.solo=solo6_.id left outer join simulador.public.simulacao simulacao7_ on solo6_.simulacao=simulacao7_.id where simulacao0_.id=?
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358)
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350)
...
...
Caso não saiba como resolver, vou colocando as outras possibilidades …