1
resposta

[Sugestão] Fix Error: IllegalStateException: Session/EntityManager is closed

Obs: Sei que esse curso será atualizado em breve, contudo resolvi faze-lo mesmo assim!

Estou fazendo o curso utilizando a especificação Jakarta EE 10 e o Java 17, devido a isso, verifiquei que o seguinte exception pode ocorrer: **IllegalStateException: Session/EntityManager is closed**

Pois apesar de na desmonstração da aula o professor estar fechando o EntityManager (ou seja, chamando o método .close()) e chamando uma nova instancia do EntityManager, para utilizar osmetodos de query da classe DAO e tudo ter dado certo!

Por algum mótivo na minha tentatiza de excução ele se manteve fechado mesmo para a nova instância do metodo EntityManager, consequentemente retornando a EXCEPTION acima.

Meu palpite é devido à tudo estar como static , de modo que ele irá preservar EntityManager como *Detached *.

Para resolver basta retirar o .close() da função estática de criação de produto e coloca-la no metodo main.

Valeu, espero que ajude caso alguém também tenha o mesmo problema!

1 resposta

Olá Bruno, tudo bem?

Obrigado por compartilhar sua sugestão conosco! É sempre bom ver que os estudantes estão atentos e buscando soluções para os problemas que encontram durante o curso.

Realmente, a exceção IllegalStateException: Session/EntityManager is closed pode ocorrer quando o EntityManager é fechado e uma nova instância é criada, mas a nova instância não consegue acessar o banco de dados porque a anterior ainda está fechada.

Sua sugestão de retirar o .close() da função estática de criação de produto e colocá-la no método main é uma solução válida para esse problema.

Obrigada novamente! Abraços e bons estudos!