1

Hibernateイベントリスナーを使用して単純な監査ログ機能を実装しています。トランザクション内のすべてのエンティティのすべての変更を蓄積し、監査を処理したかったのです。

Hibernateインターセプターアプローチを使用することで、蓄積されたすべての監査イベントの監査を処理するpostFlush()が得られます。

イベントリスナーに相当するものは何ですか?

'hibernate.ejb.event.flush'イベントを使用してみました。ただし、onPostInsert、onPostUpdate、およびonPostDeleteイベントの前であっても、ライフサイクルの非常に最初の部分を呼び出します。したがって、変更を蓄積することはできません。

また、自動フラッシュを試してみましたが、機能しませんでした。何か案が?

4

3 に答える 3

1

他の人を誤解させないために、フラッシュイベントリスナーが実際に機能することを理解しました。問題は、デフォルトの休止状態のイベントリスナーが登録されていないことです。デフォルトのイベントリスナーをカスタムリスナーと一緒に登録すると、正常に動作し始めました。

于 2012-10-04T12:09:29.557 に答える
0

hibernateを使用して監査を実装している場合は、Enversを使用することをお勧めします。Enversを使用した監査は、エンティティに@Audited注釈を付けるのと同じくらい簡単です。

于 2012-10-03T10:23:34.057 に答える