0

監査可能な各ドメインのインスタンスまたは少なくともIDを保存しようとしています。たとえば、ドメイン「Student」があり、監査可能です。したがって、ドメインのインスタンスが作成または編集されるたびに、新しいレコードが監査ログに保存されます。保存または更新される各ドメインのIDを保存する必要があります。どのようにそれを行うことができますか?前もって感謝します

4

4 に答える 4

1

次の URL を参照してください: http://grails.org/plugin/audit-logging

上記のプラグインは、ドメイン クラスでコレクションを使用している場合に備えて、コレクションのないドメイン クラスでうまく機能します。このスタックオーバーフローリンクを参照してください:

それが大いに役立つことを願っています

于 2013-10-28T04:07:23.290 に答える
1

下でHibernate Enversを使用するGrails Enversプラグインを使用できます。プラグイン情報は、こちらのプラグイン サイトにあります。

于 2012-10-11T10:21:43.957 に答える
0

以下のような AuditLog プラグインでイベントを使用して、必要なものを追加することもできます。これが理にかなっていることを願っています

def onChange = { oldMap,newMap ->
        println "Person was changed ..."
        oldMap.each({ key, oldVal ->
            if(oldVal != newMap[key]) {
                println " * $key changed from $oldVal to " + newMap[key]
            }
        })
    }


def onSave = {
        println "new datainserted"
        // may optionally refer to newState map
    }

これらの方法のいずれかで使用できます

 def event = new AuditLogEvent(
                    actor: actor,
                    className: className,
                    eventName: eventName,
                    persistedObjectId: objectId,
                    propertyName: propertyName,
                    newValue: newValue
            )
            if (event.validate()) {
                auditLogListener.saveAuditLog(event)
                log.info "Logged audit event [$event]"
            }
于 2012-10-12T16:24:25.087 に答える
0

監査プラグインは使用しません。テストの実行時にいくつかの問題があります。このプラグインは、GORM がイベントをサポートしていなかったときに作成されました。次のイベントをインターセプトできます

beforeInsert - Executed before an object is initially persisted to the database
beforeUpdate - Executed before an object is updated
beforeDelete - Executed before an object is deleted
beforeValidate - Executed before an object is validated
afterInsert - Executed after an object is persisted to the database
afterUpdate - Executed after an object has been updated
afterDelete - Executed after an object has been deleted
onLoad - Executed when an object is loaded from the database

お役に立てれば

于 2012-10-11T21:23:47.030 に答える