JPAとは
Javaのオブジェクト世界とDBの世界を直接的につなげて、両間で自動変換を行う仕組み。
標準O/Rマッピングフレームワーク。
特徴
要素
エンティティマネジャー(EntiytManager)
エンティティを管理する。中心となる要素。永続性コンテキスト
EntiytManagerの配下にあり、エンティティの状態を表す。
EntiytManagerがエンティティを受け取り、様々なDB処理を一括して行う。
EntiytManagerで用意されてる基本的なメソッド
- persist(新規登録)
- merge(更新)
- remove(削除)
- find(検索)
永続性コンテキストとは
インスタンスは、プログラムが終了すると、同時にすべて消滅する。 なぜ?→laravelわからなかったところまとめメモ - プログラミングMEMO
例えば、文書作成プログラムがあり、入力した文書(インスタンス)が、プログラム終了と同時に消滅してしまう。
そこで、インスタンスの状態を半永久的に保存し、いつでも復元できるようにすることが必要となる。このことを永続化という。
生成したインスタンスの保存 = 永続化
EntiytManagerのメソッドで操作したエンティティは一旦、永続性コンテキストに配置される。
例えば、エンティティに対して新規登録の操作をしても、その時点ではDBへ書き込みはされず、「このエンティティはDBに新規登録するデータだよ」というマークをつけて永続性コンテキストに配置はれるだけ。
これが、オブジェクトの永続化になる。
EntiytManagerによって、DBへの格納が可能になった状態であることを意味する。
O/Rマッピング(O/Rマッパー)
オブジェクト(Object)のそれぞれのデータを、リレーショナルデータベース(RelationalDatabase)のレコードを構成する個々の項目に関連付ける仕組みのこと。