JPA エンティティの簡単な監査要件があります。作成日と最終変更日と作成者を保持します。作成者は、現在ログインしているユーザーである必要があります。
基本クラスまたは JPA インターセプター (追加のフレームワークなし) で注釈を@PrePersist
使用してこれを実装したいと思います。@PreUpdate
ただし、どちらの場合も、HttpSession に格納されている現在ログインしているユーザーにアクセスする方法が必要です。
基本エンティティークラスのメソッドまたは JPA インターセプターからこの情報にアクセスするにはどうすればよいですか?
それを達成する方法に関するベストプラクティスまたはテスト済みの方法はありますか?
私は、リクエストごとに、ログインしたユーザーオブジェクトをグローバルに到達可能な ThreadLocal (たとえば、Spring シングルトンサービス内) に配置する Web インターセプターを追加して、どこからでも検索できるようにすることを考えていました...
それは良い考えのように聞こえますか?
どんな提案でも大歓迎です!
編集:ここで同様の質問が見つかりました(右側の提案を通じて自分自身を投稿した後にのみ見つかりました):JPAエンティティでcreatedByとupdatedByを自動的に設定します
結論は ThreadLocal の方向に進んでいるようです...それでも、どんなフィードバックも歓迎します!