Nico, boa tarde!
Estou com uma dúvida com o uso do JPA com o CDI. Como e quando o CDI faz liberação dos recursos alocados quando executamos, por exemplo, a criação de um DAO:
@PostConstruct
void init() {
this.dao = new DAO<Autor>(this.em, Autor.class);
}
No callback para o gerenciador de transação, abrimos e fechamos a mesma
@Inject
EntityManager manager;
@AroundInvoke
public Object executaTX(InvocationContext contexto) throws Exception {
manager.getTransaction().begin();
// Chamar os daos que precisam de um contexto
Object resultado = contexto.proceed();
manager.getTransaction().commit();
return resultado;
}
Então, pergunto. Quando é que os recursos alocados são liberados no servidor de aplicação (WildFly, TOMCAT, Glassfish,...)? Ou ainda, quando é executado o método close()? Pois ele foi retirado do código.
Desde já, agradeço pela atenção