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