跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Taiwan Tongues 台語維基
搜尋
搜尋
外觀
建立帳號
登入
個人工具
建立帳號
登入
檢視 Java維持久化API 的原始碼
頁面
討論
臺灣正體
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
外觀
移至側邊欄
隱藏
←
Java維持久化API
由於以下原因,您無權編輯此頁面:
您請求的操作只有這些群組的使用者能使用:
使用者
、taigi-reviewer、apibot
您可以檢視並複製此頁面的原始碼。
'''Java 維持久化 API'''('''JPA''') 是一个 Java 應用程式接口規範,描述了使用 Java 標準版予平台(Java SE) 和 Java 企業版平台(Java EE)的應用中的關係數據的管理。 維持久化,佇遮包括三个層面的意思: * API 本身,定義佇咧 javax . persistence 揹仔內 * Java 久化查詢語言 ( JPQL ) * 對象 / 關係元數據 JPA 的參考實現是 EclipseLink。 ==歷史背景== 二空空六年五月十一號,JPA 一鋪零規範作為 JCP JSR 二百二十最終被發布。JPA 二鋪零規範,佇二空空九年十二月發布(Java EE 六平台,依賴佇咧 JPA 二孵空。) JPA 二嬸一規範,佇二空一三年四月二二發布(Java EE 七平台,依賴佇咧 JPA 二嬸一。) ==實體== 久化實體是一个輕量級的 Java 類,其狀態通常持久的保存到關係資料庫的表中。 這種實體的實例對應該表中的各行。 實體之間通常有關係,這關係通過對象 / 關係元數據表示。 會當佇實體類文件中直接使用注釋來指定這種關係,嘛會當隨應用程式分發的單獨 XML 描述文件當中指定。 ==Java 久化查詢語言(JPQL)== Java 久化查詢語言 (JPQL)對存儲佇關係資料庫內底的實體進行查詢。查詢在語法頂懸類似 SQL 查詢,但是操作的是實體對象毋是直接對資料庫表進行操作。 ==動機== 咧引入 EJB 三更零規範進前,真濟企業級 Java 開發人員使用由久化框殼(比如講 Hibernate)抑是數據訪問的對象(DAO)提供的輕量級持久化對象,來代替實體 bean(EJB 的一種)。 這是因為佇咧較早的 EJB 規範當中,實體 bean 需要傷濟複雜的代碼佮繁重的資源占用,並且因為 bean 和 DAO 對象抑是繼續化框內底的原始碼中的互相連和依賴性,𪜶干焦會當佇 Java EE 應用程式侍服器使用。 所以,上頭先佇第三方持久性框殼內底提供的真濟功能攏予人合併著 Java Persistence API 中,而且對二空空六年開始,像 Hibernate(版本三更二)和 TopLink Essentials 按呢的項目已經實現 Java Persistence API 規範。 ==相關技術== ===企業 JavaBeans(EJB)=== EJB 三更零規範(本身是 Java EE 五平台的一部份)包含 Java 維持久化 API 的定義。 毋管按怎,終端用戶無需要 EJB 容器抑是 Java EE 應用程式侍服器就會當使用這久性 API 的應用程式。 Java 維持久化 API 的未來版本欲佇單獨的 JSR 佮規範中定義,毋是咧 EJB JSR / 規範中定義。 Java 維持久化 API 取代矣 EJB 二孵空 CMP(提久化管理容器)的久性解決方案 ===Java 數據對象的 API=== Java 維持久化 API 成做統一 Java Data Objects API 和 EJB 二嬸空容器管理持久性(CMP)API 的一部份來開發。截至二空空九年,支持這个 API 的大多數產品攏支持 Java 維持久化 API。 Java 維持久化 API 干焦關係資料庫管理系統提供持久化特性。也就是講,JPA 專注於對象關係映射(ORM)(請注意,除了關係資料庫以外,閣有 JPA 提供程式的支持其他的資料庫模型,但是這超出矣 JPA 的設計範圍)。 有關 JPA 角色的說明,請參閱 JPA 二規範第一節簡介,其中非常的清楚來說明「這項工課的技術目標是為 Java 應用程式開發人員提供一个對象 / 關係映射工具,使用 Java 領域模型來管理關係資料庫。」 Java 數據對象規範的支持 ORM,佮對其他類型的資料庫模型的維持久化,比如講平面文件資料庫佮 NoSQL 資料庫,包括文檔資料庫,圖形資料庫,以及字面上任何其他會使想著的數據存儲。 ===服務數據對象 API=== Java 維持久化 API 的設計者旨咧提供關係提供久化,其中真濟關鍵領域來自對象關係影射工具,如 Hibernate 和 TopLink。Java 維持久化 API 改進並取代矣 EJB 二孵空,其體這馬 EJB 三-c空中。服務數據對象(SDO)API(JSR 兩百三十五)佮 Java 維持久化 API 有著截然無仝的目標,予人認為講是互補的。SDO API 閣專工面向服務的體系結構,多種數據格式非關係數據佮多種程式語言設計設計。JCP 管理 SDO API 的 Java 版本;SDO API 的 C + + 版本通過 OASIS 進行管理。 ===Hibernate=== Hibernate 為 Java 提供一个開源的對象關係影射框架。版本三更加懸版本提供了 Java 維持久化 API 的實現。Gavin King 創立了 Hibernate 項目。伊代表 JBoss 參加喔 JSR 兩百二十,這是負責開發 JPA 的 JCP 專家組。這引發了箍圍仔 JPA 和 Hibernate 之間關係的繼續爭議佮臆測。Sun Microsystems 表示,遮的想法來自幾个框殼,包括講 Hibernate 和 Java 數據對象。 ===Spring Data JPA=== 抽象存儲庫的實現是 Java 應用程式框殼 Spring 領域驅動設計的關鍵構建塊。透明的支持所有可用的 JPA 實現,並支持 CRUD 操作猶閣有方便地執行資料庫查詢。 ==JPA 二孵空== 二空空七年七月,JPA 二嬸零佇咧 JCP 的 JSR 三百十七个請求中作為新版本開發。二空空九年十二月十號,JPA 強欲消息去予批准為最終正式標準。JPA 二嬸零的重點是提供一寡流行的 ORM 供應商中存在的特性,猶毋過佇 JPA 一丈空中一致著一致認可。 主要特性包括: * 擴大的對象關係功能的映射 * 支持內嵌的對象的收集,通過加對一的關係影射來連接 ORM * 有序列表 * 訪問類型的組合 * 一種標準查詢 API * 標準化的 SQL 提示 * 標準化的附加元數據,以支持 DDL 生成 * 支持驗證 * 支持共享對象的高速緩存。 支持 JPA 二嬸零的供應商 : * Batoo JPA * DataNucleus ( formerly JPOX ) * EclipseLink ( formerly Oracle TopLink ) * IBM , for WebSphere Application Server * JBoss with Hibernate * Kundera * ObjectDB * OpenJPA * OrientDB from Orient Technologies * Versant Corporation JPA ( not relational , object database ) ==JPA 二嬸一== 二空一一年七月,JPA 二嬸一佇 JCP 的 JSR 三百三十八請求中作為新版本開發。二空一三年五月二二,JPA 二嬸一被批准為最終正式標準。 主要特性包括: * 轉換器-允准自定義的代碼去裝換無仝的資料庫佮數據類型。 * 標準 Update / Delete-允准通過標準 API 批量閣較新佮刣掉。 * 實體圖表-允准得著部份抑是合併的對象。 * JPQL / 標準增強-算子查詢,通用資料庫的功能,Join 聯合查詢,TREAT 選項。 * 模式生成 * 儉過程,允准查詢被定義做資料庫的存儲過程。 支持 JPA 二嬸一的供應商 : * DataNucleus * EclipseLink * Hibernate ==JPA 二嬸二== 二空一七年乎,JPA 二嬸二佇咧 JCP 的 JSR 三百三十八要求中作為維護版本發佈開發。維護審查已經佇二空一七年六月十九得著批准。 主要特性包括: * 予所有的注釋添加 @ Repeatable * 允准所有 JPA 釋心通用於元的注釋。 * 添加查詢結果流處理能力 * 容允 AttributeConverters 的 CDI 注入 * 支持 Java 白日期佮時間類型支持 JPA 二嬸二的供應商 : * DataNucleus * EclipseLink ( from version 二嬸七 ) * Hibernate ( from version 五孵三 ) ==JPA 未來做工課== 未來的 JPA 規範信息會當佇遮得著: * JPA Specification Mailing Lists * JPA Specification JIRA 二空一五年十一月,Linda DeMichiel 佇咧 javaee-spec 用戶郵件中宣佈 Lukas Jungmann 接任規範化主管。Linda 伊聲明閣表示,「 計畫咧 Java EE 八時間框內底為 JPA 二嬸二做 MR」。 ==工具== * NetBeans Jeddict * Eclipse JPA ( Dali ) ==參見== * . NET Persistence API ( NPA ) * JDBC * MyBatis * OpenXava * pureQuery * SAP NetWeaver Application Server * XQJ * ObjectiveSql ==參考文獻== ==外部連結== ===一般信息=== * Documentation for the final version of the EJB 三 spec ( called JSR 兩百二十 ) * GlassFish's Persistence pageArchive . is 的存檔,存檔日期兩千空一十三石一鋪十二 * JCP Persistence page ===教程=== * Java EE 六 Persistence API Javadoc * Java EE 六 Persistence API tutorial * Java EE 七 Persistence API Javadoc * Java EE 七 Persistence API tutorial * JPA Tutorial by Prasad Kharkar * JPA Tutorial from Java Code Geeks * JPA Tutorial using OpenJPA as implementation * Persistence in the Java EE 五 tutorial [[分類: 待校正]]
返回到「
Java維持久化API
」。