1、永続オブジェクト
永続オブジェクトの主な役割は、のEntityManagerFactoryオブジェクトを取得するために使用されています。クラスの静的メソッドを呼び出すことによってCreateEntityManagerFactoryは、コンフィギュレーション・ファイルのEntityManagerFactory永続性ユニット名を作成します。
// 1.创建のEntityManagerFactory @Test 文字列のunitName = "myJpa" 。 EntityManagerFactory工場 = Persistence.createEntityManagerFactory(のunitName)。
2、のEntityManagerFactory
EntityManagerFactoryインタフェースは、主にEntityManagerのインスタンスを作成するために使用されます
// エンティティの管理クラスの作成 )のEntityManager EM = factory.createEntityManagerを(;
EntityManagerFactoryは、JPAのプログラミングを使用するときに、我々はのEntityManagerFactoryの作成を最適化することができ、スレッドセーフなオブジェクト(つまり、複数のスレッドが同じのEntityManagerFactoryオブジェクトはセキュリティスレッドを持っていないアクセス)、およびリソースの極端のEntityManagerFactory廃棄物の作成ですので、単にプロジェクトを行う必要がありあなたができる唯一のものであるのEntityManagerFactory
3、EntityManagerの
JPA仕様では、EntityManagerのオブジェクト永続性のコア動作を完了する。それは永続オブジェクトになるまでだけEntityManagerを呼び出した後、通常のJavaオブジェクトとしてEntityクラスは、持続します。EntityManagerのは、基礎となるデータソースエンティティ・クラスのセット間でオブジェクトO / Rマッピングを管理しました。それは、エンティティBeanを管理し、更新するために使用される主キーのルックアップエンティティBeanに明記することができます、また、エンティティJPQL文を照会することができます。
私たちは、EntityManagerののメソッドを呼び出してトランザクションを完了するために取得し、データベースの永続性操作することができます
メソッド説明:
getTransaction:トランザクションオブジェクトを取得
持続:操作保存
マージを:更新
削除:削除
検索 / getReferenceを:係るIDクエリを
4、たEntityTransaction
JPA仕様では、たEntityTransactionは、私たちのJavaコードは比較的単純な関数で引き受けるたEntityTransactionためのトランザクション操作を完了するためのオブジェクトの中核であります
トランザクションを開きます。開始
コミット:トランザクションのコミット
、ロールバックを:トランザクションをロールバック
5、抽出ツールJPAUtil
1 パッケージcn.itcast.utils; 2 。3 インポートjavax.persistence.EntityManager; 4 インポートjavax.persistence.EntityManagerFactory; 5 インポートjavax.persistence.Persistenceクラスがある 。6 。7 / ** 8 *解決エンティティマネージャファクトリリソースの浪費と消費ときに問題 9 このプログラムツールは、公共団体・ファクトリ・オブジェクト・マネージャを作成する最初のアクセスのブロックの形で*静的コード 10 * 11 * getEntityManager最初のアクセス方法:コードのブロックは、静的ファクトリオブジェクトを作成した後に、その後のEntityManagerオブジェクトを作成するメソッドを呼び出して 12 * getEntityManager第二の方法:既にのEntityManagerオブジェクト作成、ファクトリ・オブジェクトによって作成されたダイレクト 13である * / 14 パブリック クラスJpaUtils { 15 16 プライベート 静的のEntityManagerFactoryファクトリー; 17 18である 静的 { 19が。 // 1.負荷のEntityManagerFactory作成、構成ファイル、 20である ( "myJpa"工場= Persistence.createEntityManagerFactory ); 21である } 22は 23である / ** 24 のEntityManagerオブジェクト*取得し 25 * / 26であり、 公衆 静的のEntityManager getEntityManager(){ 27 リターンfactory.createEntityManager(); 28 } 29 }