Olá,
Estou utilizando Swing, Hibernate+JPA esta funcionando corretamente em vários relacionamento com Fetch Lazy. Porem em um deles quando tento acessar a Listesta sendo lançada a execeção abaixo dizendo que a sessão esta fechada, porem se eu mudo para Eager funciona! Alguem faz idéia do que pode ser ?
Sei da diferença do EAGER para o LAZY por este motivo quero utilizar o LAZY para aumentar a performance, porém me deparo com este problema.
Desde já agradeço qualquer ajuda.
Grato
Assim funciona:
@OneToMany(mappedBy = "paciente", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@Fetch(org.hibernate.annotations.FetchMode.SELECT)
private List<ProntuarioQuadroRisco> prontuarioQuadroRiscos = new ArrayList<ProntuarioQuadroRisco>();
@OneToMany(mappedBy = "paciente", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@Fetch(org.hibernate.annotations.FetchMode.SUBSELECT)
private List<ProntuarioQuadroGeral> prontuarioQuadroGeral = new ArrayList<ProntuarioQuadroGeral>();
Gostaria que fosse assim:
@OneToMany(mappedBy = "paciente", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<ProntuarioQuadroRisco> prontuarioQuadroRiscos = new ArrayList<ProntuarioQuadroRisco>();
@OneToMany(mappedBy = "paciente", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<ProntuarioQuadroGeral> prontuarioQuadroGeral = new ArrayList<ProntuarioQuadroGeral>();
Erro:
SEVERE: failed to lazily initialize a collection of role: as.com.sisclinica.model.Pacientes.prontuarioQuadroGeral, no session or session was closed