1

現在、JPAエンティティマネージャーで問題が発生しています(Eclipselinkを使用)。エンティティマネージャで問題が発生すると、それを使用して何もできなくなります。毎回再起動する必要があります。これは本当に厄介で、これを本番環境で使用することを考えると、私はこれについてあまり快適に感じません。

アプリケーション全体を再起動せずにエンティティマネージャーをリセットする方法はありますか?失敗したjpa操作に対してエンティティマネージャーをもう少し堅牢にすることができるいくつかのconfig-optionsはありますか?

クリス

4

2 に答える 2

0

詳細を教えてください、

「何かがうまくいかないときはいつでも」-何がうまくいかないのですか?どのようなエラーが発生しますか、スタックを含めてください。

「私はもう何もできません」-どのようなエラーが発生しますか?

一般に、EntityManagerで操作が失敗した場合は、操作を閉じて、ファクトリから新しい操作を作成するだけです。EntityManagerは、リクエストごと、またはトランザクションごとに使用する必要があるため、アプリケーションの設計が不適切でない限り、新しいエンティティマネージャーを取得することは問題になりません。

clear()を呼び出して、特定のEntityManagerをリセットし、引き続き使用することもできます。

于 2012-09-05T13:42:23.657 に答える
0

私の知る限り、EntityManager によって例外がスローされると、使用できなくなるため破棄する必要があります (通常、例外を除く操作で IllegalStateException をスローしますclose())。

私は常にコンテナ管理のコンテキストを使用しているため、JMelnik が提案することを試したことはありませんが、うまくいくかもしれません。

于 2012-09-05T08:46:22.690 に答える