JPA 【Java Persistence API】 Jakarta Persistence
概要
JPA(Java Persistence API)とは、Javaで標準的に利用されるAPIの一種で、データの永続的な保管や取り出しを容易にする機能を提供するもの。リレーショナルデータベース(RDB)へのアクセスに用いられることが多い。データベース管理システム(RDBMS)に対する接続や操作を行う機能、Javaプログラム上でデータを格納したオブジェクト(エンティティと呼ばれる)とリレーショナルデータベースのテーブルおよび行を対応付けるO/Rマッピング機能、プログラム上でのエンティティ管理機能などを提供する。
開発者はRDBMSへの接続仕様などを記述した設定ファイル(persistence.xmlなど)を用意し、Javaプログラム上でjavax.persistenceパッケージを読み込んでAPIを呼び出すことで、オブジェクトに対する操作としてデータアクセスを行うことができる。実際のRDBMSに対する操作は処理系が行うため開発者が意識する必要はない。
エンティティに対するデータの検索や追加、更新、削除などを行うためのクエリ言語(問い合わせ言語)として独自の「JPQL」(Java Persistence Query Language)を内蔵しており、RDBMSに対するクエリ言語標準であるSQL(Structured Query Language)に似た語彙と構文でプログラム上のデータ集合に対する操作を記述・発行することができる。
JPAの初版(1.0)はJava仕様の標準規格の一環としては2006年にJSR 220の一部として策定され、Java SEおよびJava EEで利用可能となった。2009年にはJPA 2.0が発行された。2019年にJava EEがJakarta EEに移管されると正式名称が「Jakarta Persistence」に変更され、パッケージ名もjakarta.persistenceに変更された。2020年にはJakarta Persistenceとしてバージョン3.0が提供されている。
(2023.6.11更新)