Pessoal eu fiquei com uma dúvida devo ou não fechar o EntityManager?
Eu estou fazendo uma API Rest bem simples e quando eu faço a primeira requisição para o servidor ele funciona tranquilamente, seja qual for a operação insert, select etc, mas na segunda requisição ele da erro Session/EntityManager is closed
Se eu não fechar o EntityManager ele funciona de boa, mas devo deixar aberto? é isso mesmo que deve ser feito?
vou postar o código aqui caso ainda reste dúvida.
public class DiscenteDAO {
private EntityManager em = JPAUtil.getEntityManager();
public boolean save(Discente discente) throws Exception{
try {
em.getTransaction().begin();
em.persist(discente);
em.getTransaction().commit();
em.close(); // se eu comentar isso o erro para de acontecer
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
public Discente get(Integer id){
em.getTransaction().begin();
Discente discente = em.find(Discente.class, id);
em.getTransaction().commit();
em.close(); // se eu comentar isso o erro para de acontecer
return discente;
}
}
JPAUtil
public class JPAUtil {
private static EntityManager em = Persistence.createEntityManagerFactory("odonto").createEntityManager();
public static EntityManager getEntityManager(){
return em;
}
}
Isso é muito importante para mim pessoal, e eu preciso de uma explicação boa sobre isso, por que isso faz parte de um projeto real