Java Persistence APIJPA)とは、関係データベースのデータを扱うJava SEおよびJakarta EE(旧・Java EE)のアプリケーションを開発するためのJava用フレームワークである。

JPAは、以下の3つの部分から成る。

  • API(javax.persistence パッケージで定義されている)
  • Java Persistence Query Language
  • オブジェクト/関係メタデータ

JPAのリファレンス実装EclipseLinkとして実装されている。

歴史

編集

Java Persistence API 1.0は、JSR 220 (EJB 3.0) Expert Groupの作業の一部として2006年5月11日に策定された。JPA 2.0はJSR 317として、2009年12月10日にJava EE 6やEJB 3.1と同一日に承認された。JPA 2.1はJSR 338として、2013年4月22日に承認された。

エンティティ

編集

JPAにおける永続性エンティティは、関係データベースにおける表を表した軽量Javaクラスである。そのインスタンスは表の個別の行に対応する。通常、他のエンティティとの関係を持ち、その関係はオブジェクト/関係メタデータで表される。オブジェクト/関係メタデータは、アノテーションを使ってエンティティクラスのソースファイルに直接記述することもできるし、別のXMLファイルとして記述することもできる。

Java Persistence Query Language

編集

Java Persistence Query Language (JPQL) は、関係データベースに格納されたエンティティに対するクエリに使用される。文法的にはSQLに似ているが、データベースの表を直接操作するのではなく、エンティティオブジェクトを操作する。

Enterprise JavaBeans との関係

編集

Java Persistence API 1.0は EJB 3.0仕様の一部であり、EJB 3.0はJava EE 5 プラットフォームの一部である。ただし、永続性を利用したアプリケーションを実行するのにEJBコンテナや Java EEアプリケーションサーバが必須というわけではない。

Java Persistence API 2.0はEJB 3.1とは分離され、独立したJSR仕様として定義された。EJB 3.1やJPA 2.0はJava EE 6の一部である。

Service Data Object API との関係

編集

Java Persistence APIは、HibernateTopLinkなどのオブジェクト関係マッピングツールの主要機能である関係永続性のために設計された。一般にJava Persistence APIはEJB 2.0仕様を大幅に強化したものと受け取られている。Service Data Objects (SDO) API (JSR 235) はJava Persistence APIとは目的が異なり、相互に補完するものとされている。SDO API はサービス指向アーキテクチャのために設計されており、関係データモデルだけでなく様々なデータ形式や各種プログラミング言語を扱う。SDO APIのJavaバージョンはJCPによって管理され、C++バージョンはOASISが管理する。

開発の背景

編集

EJB 2.0までのEntity Beanなどのエンタープライズ・ビーンは、重すぎて複雑すぎ、Java EEアプリケーションサーバでしか使えないという問題があった。このため、その代替としてData Access Objectやオープンソースのフレームワークを使った軽量の永続性オブジェクトが使われることが多くなった。そのようなサードパーティーの永続性フレームワークの機能を集約したのがJava Persistence APIであり、HibernateTopLinkのようなプロジェクトも現在ではJava Persistence APIを実装している。

関連項目

編集

外部リンク

編集

📚 Artikel Terkait di Wikipedia

Jakarta EE

Foundationが開発している、Javaで実装されたアプリケーションサーバの標準規格及びそのAPI。前身は Java Platform, Enterprise Edition (Java EE) だが、Java EE からパッケージ名が変わっているので上位互換というわけではない。 Java Platform,

Java Database Connectivity

0以後の仕様により改善されてきている。 EJB 3.2で「エンティティ・ビーン」が廃止され、Java SE および Java EE(現・Jakarta EE)共通向けの、独立した永続化フレームワークJava Persistence API (JPA) に進化した。 オラクルは、JDBC ドライバと供給元のリスト を提供している。

Apache OpenJPA

OpenJPAは Java Persistence API仕様のオープンソース実装の一つである。 データベースへのオブジェクトの永続化を単純化する ORM の一つでもある。 Apache License2.0のもとで配布されている。 Kodoは、Java Data

Enterprise JavaBeans

ファイルも不要となり、エンティティBeanは独立した永続化フレームワークであるJava Persistence APIに置き換えられた。 2009年12月10日のJava EE 6に含まれるEnterprise JavaBeans 3.1では、シングルトンセッションBeanの追加や、セッションBe

Amazon SimpleDB

SimpleDBとAPI互換があるフリーのオープンソース代替ソフトウェア。ローカルおよびクラウド上のデータベースと接続が可能である。 simplejpa - Java Persistence API でアクセスするインターフェイス typica 代替実装 NSimpleDB - SimpleDBデータモデルをデスクトップ用にC

永続性

近のPDAは永続性記憶装置を備えており、そのようなユーザデータの消失は発生しないようになっている。 CRUD Hibernate Java Persistence API (JPA) 直交性 永続データ構造 Service Data Objects KeyKOS EROS Coyotos CapROS

Java Data Objects

jdo.PersistenceManager その他: Named Queries (pm.newNamedQuery), FetchPlan, Sequence, Delete by Query, multiple User Objects on PM Java Persistence API オブジェクト関係マッピング

Hibernate

iBATIS Service Data Objects Apache Struts Christian Bauer, Gavin King: Java Persistence with Hibernate, Manning Publications Company, ISBN 1-932394-88-5 Christian