3

私はhttp://grails.org/plugin/audit-loggingプラグインを使用しており、大規模なドメインクラスの単一のフィールドの監査にのみ関心があります。長い「無視」リストを指定することもできますが、理想的には、代わりにフィールドのホワイトリストを指定したいので、新しいフィールドが追加された場合、パフォーマンスになる可能性がある自動的に監査されないように、無視リストを維持する必要はありません。危険。

これは可能ですか?プラグインのドキュメントにその記載がありませんでした。

4

1 に答える 1

1

標準の監査ログの代わりに、イベント ハンドラーのみを使用してこれを行うことができると思います。このように監査を設定します

static auditable = [handlersOnly: true]

ホワイトリストを作成できます

def whiteList = ['name','age',...]

次に、保存、削除、または変更イベントを処理する on* イベントを作成し、ホワイト リストを反復処理して、古いマップと新しいマップでそのキーを検索します。

def onChange = {oldMap, newMap ->
    whiteList.each{propName->
       if(oldMap[propName] != newMap[propName]) {
         //
       }
    }
}
于 2012-05-09T22:05:38.353 に答える