我大约在一年内用Java开发系统,使用JPA作为数据库框架。
每次查询时,我都不关闭EntityManager,据海事组织了解,在执行查询后,JPA会自动关闭EntityManager
getSingleResult()或getResultList()
如果没有,那么垃圾收集会收集它来释放吗?
发布于 2014-09-10 10:53:09
应用程序管理的EntityManagers (通过调用emf.createEntityManager()从EntityManagerFactory获得的)必须显式关闭。
编辑:您不必在每次查询之后关闭EM,但请确保在从创建它的方法返回之前关闭EM。一种常见的方法是将EM嵌入到try/catch/finally块中,在finally情况下调用em.close();。
如果在符合Java的容器中使用事务作用域的EntityManager,则在事务期间由容器创建EntityManager,并在事务完成时关闭。
https://stackoverflow.com/questions/25763257
复制相似问题