2013-11-26 6 views
5

新しいモデルを使用して変更を行ったユーザー、日付、および各更新/挿入時に変更されたログを新しいテーブルで保存することで、モデルエンティティの履歴追跡/監査を実装したいと考えています。JPAによる履歴追跡

私はJPAプロバイダとしてEclipseLinkを使用していますが、プロバイダが今後変更される可能性があるため、History Policyは使用しません。同じ理由でHibernate Enversのどちらも使用できません。

私はauditing support which Spring Data providesに目を通しましたが、それは非常に基本的なようで、エンティティを作成または変更したユーザーと変更を保存することはできません。

私もJPAのprePersistpreUpdateについて知っているが、specificacionがいることを言う:一般的に

、ポータブルアプリケーションのライフサイクル方法は 他のエンティティ のインスタンスにアクセスし、EntityManagerのまたはクエリ操作を呼び出すべきではありません、同一の永続性内の関係を変更することができる。 コンテキスト。

これを実装するには、クリーンで簡単でポータブルな方法がありますか?

答えて

1

個別のEJBサービスを使用して手動で作成しました。これは、履歴データを抽出してMAPとして保存することでした。基本データと関係のIDだけが保存されるのは非常に基本的ですが、それだけで十分です。

基本的に、私は少しの反射で永続プロパティを検査していました。

+0

ありがとうAndrei、私はそのようなものを試してみます – zootropo

関連する問題