日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JPA EntityManager详解

發布時間:2024/1/17 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JPA EntityManager详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
JPA EntityManager詳解

1.?? 持久化上下文(Persistence Context)

? 一個持久化單元(Persistence Unit)就是關于一組Entity類的命名配置。持久化單元是一個靜態的概念。 ? 一個持久化上下文(Persistence Context)就是一個受管的Entity實例的集合。每一個持久化上下文都關聯一個持久化單元,持久化上下文不可能脫離持久化單元獨立存在。持久化上下文中的Entity實例就是相關聯的持久化單元中的若干Entity的實例。持久化上下文是一個動態的概念。 ? 一個Entity實例處于受管狀態,其實質是:該實例存在于某個持久化上下文中,并且可能被某個EntityManager處理,也因為這個原因,所以我們說一個EntityManager管理一個持久化上下文。 ? 盡管持久化上下文非常重要,但是開發者不直接與之打交道,持久化上下文在應用程序中是透明的,我們需要通過EntityManager間接管理它。

2.?? 容器管理的EntityManager(Container-Managed EntityManager)

? 通過將@PersistenceContext注解標注在EntityManager類型的字段上,這樣得到的EntityManager就是容器管理的EntityManager。由于是容器管理的,所以我們不需要也不應該顯式關閉注入的EntityManager實例。 ? 容器管理的EntityManager又細分為兩種類型:事務范圍(Transaction)的和擴展的(Extended)。 ? 若@PersistenceContext未指定type屬性,或者指定為PersistenContextType.TRANSACTION,則表示該EntityManager是事務范圍的;若指定為PersistenContextType.EXTENDED的,則表示該EntityManager是擴展的。 ? 事務范圍:事務范圍的EntityManager是無狀態的,可用在無狀態會話Bean和有狀態會話Bean中。 ü 事務范圍的EntityManager依賴于JTA事務,每次調用EntityManager實例的相關方法時,EntityManager會查看是否有某個持久化上下文與當前事務關聯,如果有,則使用該持久化上下文;如果沒有,則EntityManager將創建一個持久化上下文,并將該持久化上下文與當前事務關聯。當事務結束,則持久化上下文消失。 ? 擴展的:擴展的EntityManager只能用于有狀態會話Bean。 ü 擴展的EntityManager在有狀態會話Bean實例創建的時候創建一個持久化上下文,并且直到該有狀態會話Bean銷毀,則相應的持久化上下文才被移除。 ü 由于在擴展的EntityManager中,每次方法調用都是使用的相同的持久化上下文,所以前一次方法調用時產生的受管實體在下一個方法訪問時仍然為受管實體。

轉載于:https://blog.51cto.com/77857/158996

總結

以上是生活随笔為你收集整理的JPA EntityManager详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。