1. javax.persistence.Persistence:
永続クラスはインスタンスてEntityManagerFactoryを取得するために使用されます。このクラスは、のcreateEntityManagerFactoryという静的メソッドが含まれています。
過負荷createEntityManagerFactory方法は、以下の2つのバージョンがあります。
| -という名前のpersistence.xmlパラメータでJPA永続性単位でプロファイルを持つメソッドのパラメータは
| -メソッドは、2つのパラメータを取ります。前と同じことを意味パラメータは、タイプがJPAを設定するためのパラメータの地図関連のプロパティは、その後、残りの部分は、プロパティの設定を無視します。Mapオブジェクトの属性名は、JPA実装ライブラリプロバイダの名前空間規則のプロパティ名でなければなりません。
2. javax.persistence.EntityManagerFactory:
EntityManagerFactoryインタフェースは、主にEntityManagerのインスタンスを作成するために使用されます。インタフェース規則以下の4つの方法のように:|
- createEntityManager():エンティティマネージャのオブジェクトのインスタンスを作成します。
| - createEntityManager(マップマップ):エンティティマネージャのオブジェクトのインスタンスを作成するために使用されるオーバーロードされたメソッドは、マップのパラメータは、EntityManagerの特性を提供するために使用されます。
| -いるisOpen():のEntityManagerFactoryが開いているかどうかを確認してください。あなたはそれを閉じるためにclose()メソッドをコールしない限り、作成したエンティティマネージャファクトリの後、開いたままになります。
| -close():閉じるのEntityManagerFactory。EntityManagerFactoryをシャットダウンは、いるisOpen()メソッドは、偽の、他のメソッドが呼び出されることはありませんリターンをテストするために、それ以外の場合は、IllegalStateExceptionがにつながるすべてのリソースを解放します。
3. javax.persistence.EntityManager:
JPA仕様では、EntityManagerのオブジェクト永続性のコア動作を完了する。それは永続オブジェクトになるまで通常のJavaオブジェクトとしてエンティティ、およびだけEntityManagerを呼び出した後は保持されます。EntityManagerのは、基礎となるデータソースエンティティ・クラスのセット間でオブジェクトO / Rマッピングを管理しました。それは、エンティティBeanを管理し、更新するために使用される主キーのルックアップエンティティBeanに明記することができます、また、エンティティJPQL文を照会することができます。
状態のエンティティ:
| -新しい状態:新しく作成されたオブジェクト、まだ永続的な主キーを持っています。
| -永続的な状態:すでに永続的な主キーを持っていると、コンテキストを確立するための永続
| -フリーステータス:永続的な主キーを持っていますが、コンテキストおよび持続性を確立していません
| -ステータスを削除します。すでに持続、持続的な主キーを持っていますコンテキストの確立が、データベースから削除。
4. javax.persistence.EntityManager:
「(主キーオブジェクト、クラス<T> entityClass)を見つけます:
エンティティが現在の永続的な環境に存在する場合、キャッシュされたオブジェクトが返され、OID対応するエンティティクラスオブジェクトを返し、それ以外の場合は、新しいエンティティを作成し、データベース情報をロードします。OIDはデータベースに存在しない場合ヌルで返されます。最初のエンティティクラスのパラメータの型は、2番目のパラメータは実体を検索する主キーで、クエリです。
「getReference(クラス<T> entityClass、主キーオブジェクト):
そして、この方法は、ことを除いて、類似している()を見つける:指定されたエンティティがキャッシュに存在しない場合は、EntityManagerのは、薬のEntityクラスを作成しますが、すぐにデータベース内の情報、このエンティティのプロパティの最初の本当の使用前にはロードされません。ロードされたので、これは、データベースのOIDに存在しない場合は、getReference()はnull値を返しますが、EntityNotFoundExceptionをスローしません
「(オブジェクトエンティティ)永続。
管理に新しく作成されたEntityManagerのためのエンティティ。メソッドが実行された後、エンティティオブジェクトを永続状態に()メソッドを保持渡します。
| -入ってくるが、永続的な状態ですでに()Entityオブジェクトのメソッドを解決しない場合、持続()メソッドは何もしません。
| -エンティティの削除()操作の状態に継続する場合は、永続的な状態に変換されます。
| -実行の自由状態の実体は()の動作を継続する場合は、持続可能性()メソッドは、EntityExistExceptionは、(フラッシュまたはトランザクションの後に投げコミットすることも可能)スロー
「(オブジェクトの実体)を削除します。
インスタンスを削除します。インスタンスが管理されている場合、エンティティレコードのデータベースに関連付けられていること、それはまた、それに関連付けられているデータベースのレコードを削除します。
「(Tエンティティ)をマージ:
同期エンティティの処理のために()をマージします。すなわち、挿入してデータベース操作を更新
"流す ():
同期持続コンテキストは、永続的なコンテキストを来て、すべての未保存状態のエンティティは、データベースに情報を保存します。
「setFlushMode(FlushModeTypeに対するflushMode):
フラッシュモードの永続コンテキストを設定します。2を列挙することができます。パラメータ
| -自動的にデータベース・エンティティを更新するFlushModeType.AUTO、|
-トランザクションが記録時にコミットされるまでFlushModeType.COMMITは、データベースを更新します。
| - 自動的にデータベース・エンティティを更新するFlushModeType.AUTO、
| - FlushModeType.COMMITトランザクションが記録時にコミットされるまで、データベースを更新します。
「getFlushMode():
フラッシュモードの持続可能なコンテキストを取得します。列挙値FlushModeTypeに対するクラスを返します。
「(オブジェクトの実体を)更新します。
即ち、属性値インスタンスを更新し、状態エンティティオブジェクトエンティティレコードデータベースの値を更新します。
「クリア():
クリア永続コンテキストは、すべての関連するエンティティを外します。更新は、この時点で提出がない場合は撤回されます。
「(オブジェクトの実体)が含まれます。
永続コンテキスト管理エンティティの現在のインスタンスかどうかを判断します。
「いるisOpen():
現在のエンティティマネージャが開いているかどうかを確認します。
「getTransaction():
トランザクションオブジェクトのリソース層を返します。たEntityTransactionインスタンスが起動して、複数のトランザクションをコミットするために使用することができます。
")(クローズ:
エンティティマネージャを閉じます。IllegalStateExceptionが派生エンティティマネージャのインスタンスメソッドまたはクエリオブジェクトのメソッドを呼び出した後場合は、例外をスローし、getTransactionいるisOpenメソッド(falseを返す)に加えます。エンティティマネージャのトランザクションに関連付けられているがアクティブなときにトランザクションが完了するまでは、closeメソッドを呼び出した後に永続コンテキストは、まだ管理された状態になります。
「からCreateQuery(文字列qlStringは):クエリオブジェクトを作成します。
「CreateNamedQuery(文字列名):問合せブロックを指定されたオブジェクトに基づいてクエリを作成します。クエリパラメータの名前。
「CreateNativeQuery(文字列SQLSTRING):標準のSQL文を使用して、クエリオブジェクトを作成します。標準のSQL文の文字列のパラメータ。
「CreateNativeQuery(文字列系SQL、文字列resultSetMapping):クエリオブジェクトを作成し、結果セットが返さ地図の名前を指定するには、標準のSQL文を使用して。
5. avax.persistence.EntityTransaction:
トランザクションマネージャを作動リソース管理レイヤエンティティのたEntityTransactionインターフェース。EntityManager.getTransactionメソッド呼び出しエンティティマネージャによって得られた例。
「開始()は、
データベース操作の複数の全体としてコミットまたは取り消された後、トランザクションを開始するために使用されます。トランザクションが開始された場合、それはIllegalStateExceptionがスローされます。
「コミット()
現在のトランザクションをコミットします。取引後のすべてのデータベースは、更新操作がデータベースに永続化開始しようとしています。
「ロールバック()
元に戻す(ロールバック)現在のトランザクション。結局のところ、それが起動するトランザクションデータベースの更新操作を元に戻すことであるので、データベースには影響を与えません。
「のsetRollbackOnly()
現在のトランザクションのみを取り消すことができます。
「GetRollbackOnly()
現在のトランザクションにのみフラグを元に戻すことができるかどうかを確認します。
「のisActive()
現在のトランザクションがアクティブであるかどうかを確認します。それ以外の場合は、IllegalStateExceptionがスローされます、あなたがロールバック、setRollbackOnlyメソッドメソッドとgetRollbackOnlyメソッド、コミット呼び出すことができない場合はfalseを返します。あなたはそれ以外の場合は、IllegalStateExceptionがスローされます、beginメソッドを呼び出すことはできません場合はtrueを返します。
@Test 公共 ボイドtestAdd(){ // 永続ユニット1.エンティティ・クラス管理オブジェクト(のSessionFactory)を取得する のEntityManagerFactory Persistence.createEntityManagerFactory工場=(「JPAを」); // 2.工場管理エンティティ・クラスを作成します新しいエンティティクラス(セッション) のEntityManagerマネージャー= factory.createEntityManager(); // 3.増加したデータ操作を実現するには、トランザクション管理を行わなければならない manager.getTransaction()(開始);. // 4.インスタンス化されたオブジェクトPO 、対応するデータコンテンツ設定 DeptEntity部署= 新しい新しいDeptEntity(); dept.setDname( "落下セクタ" ); dept.setLoc( "水の状態" )。 dept.setCreatedate(新しい新しい日付()); dept.setNum( 10 ); dept.setAvgsal( 1.1 ); // 。5、永続的なレイヤ管理 manager.persist(部門); // 成功し、ノーリターン値の後に追加 // 図6に示すように、更新操作の完了は、トランザクション提出するために必要とされた後 manager.getTransactionを()(コミット)は;. // トランザクションをコミット @ 7、対応するデータベース接続制御閉じる )(manager.closeと、 factory.close(); }