Bem, lendo o capítulo 4.2 do livro Aplicacoes Java para a Web Com JSF e JPA
da Casa do Código me surgiu a seguinte dúvida:
Usando JDBC, ao atualizar um dado de um objeto, a grosso modo acontece que, o objeto é carregado na memória, buscado no bando de dados e retornado e depois de ser atualizado esse objeto é “capturado” pelo GC. Uma parte do livro, fala que quando usando JPA, esse objeto não é capturado pelo GC por estar vinculado ao EntityManager A dúvida é a seguinte, quando o EntityManager.close();
é invocado esse objeto é capturado ou ainda continua na memória já que o EntityManager foi fechado?
Continuando a leitura do capítulo, eu obtive a reposta. Quando a EntityManager é fechada, o objeto é desanexado, ou seja, existe, mas não pertence mais ao EntityManager.