「JPA」と「ORM」の違い

JPAはJavaの標準ORM仕様であり、ORMはデータベースとオブジェクトをマッピングする技術全般を指します。

JPA

JPA(Java Persistence API)はJavaの標準化されたORM仕様です。Hibernateなどの実装に基づいており、Javaオブジェクトとリレーショナルデータベースをマッピングするための公式な標準インターフェースを定めています。アノテーションや設定により、SQLを明示的に書かずにデータ操作ができます。

例:JPAのエンティティアノテーションを使い、@Entityと@Idで自動的にテーブルにマッピングします。

ORM

ORM(Object-Relational Mapping)はオブジェクト指向プログラミングとリレーショナルデータベースの間の概念的なギャップを埋める技術全般です。JPAはJava向け、SQLAlchemyはPython向けなど、多くのプログラミング言語で異なるORM実装が存在します。データベーステーブルをクラスに、レコードをインスタンスに対応させます。

例:SQLAlchemyなどのORMを使うことで、SQLを直接書かずにデータベースを操作できます。

両者の違い

ORMは言語横断的な技術概念で、JPAはJava専用の標準仕様です。使う場面では、Java開発ならJPAの採用を検討し、他言語ならその言語向けORMを選びます。JPAと言及すると「Javaの標準ORM仕様」を意味しますが、ORMと言及すると「技術全般」を指すため、より広い概念です。

どちらを使うべき?判断のポイント

Java開発ならJPAという言葉が適切です。技術全般を説明する場合や、言語に依存しない概念を述べる場合はORMを使い分けましょう。HPAはJavaの標準なので、Java案件での採用が有効です。

それぞれの語をさらに詳しく

語彙の星図で「JPA」と「ORM」のつながりを探索する →