をしかし、私は、私が担当していどのようなわかりませんよ。クエリを送信した後に 接続を閉じる必要がありますか?または、私は への接続を閉じることができません。なぜなら、EclipseLinkもこの接続を 内部で使用するからです。
いいえ、有効な質問です。ドキュメントにはunwrap()
コールのセマンティクスが欠落しているようです。私はsourceから得たものから応じてEclipseLinkのについて
、:
のEclipseLinkはあなたにそれが現在アクティブなクライアントセッショントランザクションのために使用していますconnection
現在アクティブに参照を与えます。アクティブなトランザクションがない場合は、という新規のが作成され、セッションに関連付けられ、unwrap()
メソッドから返されます。
この結果、IMHOは、このように取得されたConnection
のコミット/ロールバックにより、未定義の動作や例外が発生する可能性があります。変更されたレコードが以前にeclipselink内部キャッシュによってキャッシュされているか、または管理対象エンティティが存在するDMLの実行にも同じです。
このAPIを使用する場合、特に基本トランザクションが汚れている場合、は、に注意してください。
内部のeclipselinkクラスを参照できる場合は、eclipselinkの内部接続プールにアクセスして、Connection
(排他的にはorg.eclipse.persistence.sessions.server.ServerSession.getConnectionPool(String)
を参照)を取得できます。
このJava EEまたはSEですか? – perissf
プレーンJava SE環境。 – user1494080
なぜ接続が必要ですか? JPAはほとんどの状況でEntityManagerを使用します。 – perissf