0

ガベージ コレクションのようなクラスでイベントを取得できますか?

そのことを説明しましょう:

JPA APIを使用してデータベース オブジェクトを取得しています。したがって、シーンは、EntityManagerを開いて、それぞれのものを呼び出し、終了する前に閉じる必要があるということです。

しかし、だれかがentitymanager nextを閉じるのを意図せずに忘れた場合、同じデータベースへのすべてのクエリで以前の更新されていない結果が得られます。:(

私のポイントは、あなたが破壊されるような何かのイベントをどうしても取得するということですガベージ コレクターが次に収集に来たときに閉じます。

私はデストラクタが不可能であることを知っていますが、これを処理する最良の方法は何ですか?

4

1 に答える 1

3

おそらくこれが役に立ちます。

@Override
protected void finalize() {
    try {
        close();        // close EntityManager connection
    } finally {
        super.finalize();
    }
}

Finalize は、オブジェクトがガベージ コレクションのためにスケジュールされたときに呼び出されます。

于 2012-10-18T11:36:25.117 に答える