データベースの「データに敏感な」領域に対して発生したSQL操作をログに記録する、再利用可能な監査テーブルを作成しようとしています。
実装は簡単です。本質的に、クエリを開始したユーザーの情報、タイムスタンプ、およびパラメーター値を含むクエリをログに記録したいと考えています。
手元のタスクでは、がインスタンスcreateNativeQuery()
から呼び出されjavax.persistence.EntityManager
ます。このメソッドは を返しますjavax.persistence.Query
。
http://docs.oracle.com/javaee/6/api/javax/persistence/Query.htmlをグーグルで読んだり読んだりしましたが、やりたいことを簡単に実行する方法が見つかりませんでした。
「生成された」バージョンのクエリを取得する簡単な方法はありますか? または、クエリ文字列を個別にログに記録し、すべてのパラメーターを反復処理して目的の方法でログを記録する独自の方法を作成する必要がありますか?