キーワード

JavaクラスとRDBのレコードをマッピングする。
マッピングは、アノテーションXMLで行なう。

  • EntityManager

RDBへのアクセスは、EntityManagerというクラスの提供するメソッドを介して行なう。
参照系)
find()、getReference()、createNamedQuery()、createNativeQuery()、createQuery()
更新系)
persist()、remove()
その他)
contains()、lock()、merge()、refresh()
永続コンテキストの操作)
clear()、close()、flush()、setFlushMode()

  • JPQL(Java Persistence Query Language)

SQLによく似た文法で、オブジェクトを操作する為の言語。
関数や副問い合わせも用意されているが、TRIMやCONCATなどの列を操作する関数や、副問い合わせがWHERE句でしか使用できなかったり少し貧弱。

  • エンティティ

永続化対象のオブジェクト

  • 永続コンテキスト

エンティティを管理する領域

エンティティのライフサイクル

エンティティには、New、Managed、Detached、Removedという4つの状態があり、永続コンテキストへ関連付けられているManaged、Removedと関連付けられていないNew、Detachedに分類できる。
状態は、EntityManagerのメソッドの呼び出しなどで上記のように状態遷移する。

  • New(新規)

コンストラクタにより生成されたプライマリ・キーを持たないエンティティを表わす。

  • Managed(管理された)

永続コンテキストへ関連付けられているプライマリ・キーを持つエンティティを表わす。

  • Detached(分離された)

永続コンテキストへ関連付けられていないプライマリ・キーを持つエンティティを表わす。

  • Removed(削除された)

永続コンテキストへ関連付けられている、削除予定のエンティティを表わす。

永続コンテキストへ関連付けられているエンティティは、EntityManager.flush()の呼び出しや、トランザクションのコミットによりテーブルに反映される。