代码之家  ›  专栏  ›  技术社区  ›  Tim Tuckle

我们应该什么时候关闭整个管理工厂?

  •  26
  • Tim Tuckle  · 技术社区  · 14 年前

    我是ORM的新手。我刚刚开始阅读关于使用Hibernate的Java持久性API的书籍和文档。

    我只是想知道,关闭EntityManagerFactory与关闭jdbc数据库连接类似吗?

    我们是否应该在每次持久化/更新/删除后关闭它?如果我们不关闭它,数据库连接会保持打开状态吗?

    1 回复  |  直到 9 年前
        1
  •  39
  •   Pascal Thivent    14 年前

    我只是在想,关门了 EntityManagerFactory 与jdbc数据库连接关闭类似吗?

    这不完全是真的,但关闭一个 更接近摧毁整个连接池。如果你想考虑JDBC连接,你应该考虑 EntityManager .

    我们是否应该在每次持久化/更新/删除后关闭它?

    创建 这是一个非常昂贵的操作,在应用程序的生命周期中应该执行一次(您需要 close 它位于应用程序的末尾)。因此,不,您不应该为每个persist/update/delete操作关闭它。

    这个 实体管理工厂 是一次性创建的,通常 实体管理器 每个请求是多用户客户机/服务器应用程序最常见的模式)。

    如果我们不关闭它,数据库连接会保持打开状态吗?

    正如所暗示的,这是 实体管理器 实际上与 实体管理器 将实际释放JDBC连接(通常,将其返回到池)。