2010-07-28 99 views
24

我是ORM的新手。我剛剛開始閱讀關於使用Hibernate的Java持久性API的書籍和文檔。什麼時候應該關閉EntityManagerFactory?

我只是想知道,關閉EntityManagerFactory是類似於jdbc數據庫連接關閉?

我們應該在每次持續/更新/刪除後關閉它嗎?如果我們不關閉它,數據庫連接會保持打開狀態嗎?

+0

如果EM持有連接如果「主機」或「父母」關閉,連接如何保持打開狀態?那有意義嗎 ? – 2011-02-02 02:48:31

回答

32

我只是想知道,關閉EntityManagerFactory與jdbc數據庫連接關閉類似嗎?

這並不完全正確,但關閉EntityManagerFactory將更接近銷燬整個連接池。如果你想考慮JDBC連接,你應該認爲EntityManager

我們應該在每次持續/更新/刪除後關閉它嗎?

創建EntityManagerFactory是一個非常昂貴的操作,應該在應用程序(你在應用程序的結束close吧)的一生做一次。所以,不,你不應該爲每個持久/更新/刪除操作關閉它。

EntityManagerFactory對於所有創建一次,你通常得到每個請求,這是在該請求的一端封閉的EntityManagerEntityManager每請求是針對多用戶的客戶機/服務器應用程序的最常見的模式)。

如果我們不關閉它,數據庫連接會保持打開狀態嗎?

作爲暗示,那就是實際上是關聯到一個數據庫連接EntityManager和關閉EntityManager實際上會釋放JDBC連接(最常見的,其返回到池)。

相關問題