Javaの世界とJPAは初めてです。私はJPAを勉強していて、Entity、Persistenceなどの多くの新しい用語に出会いました。読みながら、Persistence Contextの正確な定義を理解できませんでした。
誰でも簡単な素人の言葉で説明できますか? @Entity
で使用されるデータをどうするか
たとえば、この定義は複雑すぎて理解できません。
永続コンテキストは、永続IDに対して一意のエンティティインスタンスがあるようなエンティティのセットです。
永続コンテキストは、何らかの永続ストア(データベースなど)に永続化されるデータを保持するエンティティのセットを処理します。特に、コンテキストは、エンティティが、コンテキストと基になる永続ストアの両方に関連して持つことができるさまざまな状態(たとえば、管理、分離)を認識しています。
Hibernate関連(JPAプロバイダー)ですが、これらのリンクは便利だと思います。
http://docs.jboss.org/hibernate/core/4.0/devguide/en-US/html/ch03.html
http://docs.jboss.org/hibernate/entitymanager/3.5/reference/en/html/architecture.html
Java EEでは、通常、永続コンテキストはEntityManagerを介してアクセスされます。
http://docs.Oracle.com/javaee/6/api/javax/persistence/EntityManager.html
エンティティが持つことができるさまざまな状態と、これらの間の遷移を以下に説明します。
http://docs.jboss.org/hibernate/entitymanager/3.6/reference/en/html/objectstate.html
http://gerrydevstory.com/wp-content/uploads/2012/05/jpa-state-transtition.png
this ページから取得:
JPAの世界の簡単なチートシートを次に示します。
永続コンテキストは、データを保持し、データベースなどの永続ストレージに永続化される資格があるエンティティを表します。これらのエンティティがアタッチされたセッション下のトランザクションをcommit
すると、Hibernateは永続コンテキストをフラッシュし、変更します(挿入それらの/ save、update、delete)は、永続ストレージに永続化されます。
Org.hibernate.Session APIとjavax.persistence.EntityManager APIの両方は、永続データを処理するためのコンテキストを表します。この概念は、永続コンテキストと呼ばれます。永続データには、永続コンテキストと基礎となるデータベースの両方に関する状態があります。
「特定の時間にエンティティマネージャインスタンスによって管理される永続化可能な(エンティティ)インスタンスのセット」は、永続コンテキストと呼ばれます。
JPA @Entityアノテーションは、永続化可能なエンティティを示します。
JPAを参照してください ここでの定義
@pritam kumarが概要を示していますが、5番目の点は正しくありません。
永続コンテキストは、トランザクションスコープ(永続コンテキストがトランザクションの長さだけ「存続する」)、または拡張コンテキスト(永続コンテキストが複数のトランザクションにまたがる)のいずれかです。
https://blogs.Oracle.com/carolmcdonald/entry/jpa_caching
JPAのEntityManagerとHibernateのセッションは、拡張された永続コンテキストを提供します。
簡単に言えば、永続コンテキストは、エンティティが管理される環境であると言えます。つまり、「エンティティ」をデータベースと同期します。