Jakarta Persistence

Enterprise BeansEdit

EJB 3.0 仕様 (それ自体が Java EE 5 プラットフォームの一部) には、Java Persistence API の定義が含まれていました。 しかし、エンドユーザは、この永続性APIを使用するアプリケーションを実行するために、EJBコンテナまたはJava EEアプリケーションサーバを必要としない。

Java Persistence API は、EJB 2.0 CMP (Container Managed Persistence) の永続化ソリューションに取って代わるものです。 Java Data Objects

Java Persistence API は、Java Data Objects API と EJB 2.0 Container Managed Persistence (CMP) API を統一するために開発されました。 2009年現在、これらのAPIをそれぞれサポートするほとんどの製品は、Java Persistence APIをサポートしています。

Java Persistence APIは、リレーショナルデータベース管理システムのみのための永続性を指定します。 つまり、JPAはオブジェクトリレーショナルマッピング(ORM)に焦点を当てています(リレーショナルデータベース以外のデータベースモデルをサポートするJPAプロバイダーもありますが、これはJPAが設計された範囲外であることに注意してください)。 JPAの役割については、JPA2仕様の第1章「はじめに」を参照してください。この章では、「この作業の技術的目的は、Javaドメインモデルを使用してリレーショナルデータベースを管理するJavaアプリケーション開発者のためのオブジェクト/リレーショナルマッピング機能を提供することである」と明確に述べられています。「

Java Data Objects 仕様は ORM をサポートし、また他のタイプのデータベースモデル、たとえばフラットファイル データベースやNoSQL データベース、ドキュメント データベース、グラフ データベース、その他文字通り考えうるあらゆるデータストアへの永続化もサポートしています。 Service Data Objects

Java Persistence API の設計者は、Hibernate や TopLink などのオブジェクト リレーショナル マッピング ツールから取得した重要な領域の多くで、リレーショナル パーシステンスを提供することを目的としました。 Java Persistence API は EJB 2.0 を改良し置き換えたもので、EJB 3.0 に含まれることで証明されています。 Service Data Objects (SDO) API (JSR 235) は、Java Persistence APIとは全く異なる目的を持っており、補完的なものと考えられています。 SDO APIは、サービス指向アーキテクチャ、リレーショナルデータだけでなく複数のデータ形式、複数のプログラミング言語向けに設計されています。 Java Community Process は SDO API の Java 版を管理しています。 SDO API の C++ 版は OASIS を通して管理されています。 Hibernate (フレームワーク)

Hibernate は、Java 用のオープンソースのオブジェクトリレーショナルマッピングフレームワークを提供します。 バージョン 3.2 以降は、Java Persistence API の実装を提供します。 Gavin King 氏が Hibernate プロジェクトを設立しました。 彼はJBossを代表して、JPAの開発を担当するJCPの専門家グループであるJSR 220に参加しました。 このため、JPAとHibernateの関係をめぐる論争と憶測が続いています。

Spring Data JPAEdit

JavaアプリケーションフレームワークSpringに基づくドメイン駆動設計の主要なビルディングブロックであるリポジトリ抽象化の実装です。 利用可能なすべてのJPA実装を透過的にサポートし、CRUD操作だけでなく、データベースクエリの便利な実行もサポートしています

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です