0

次のようなaudit-loggingプラグインのデフォルトの audit_log テーブルがあります。

監査ログ: id | class_name | event_name | ...

ログに記録されたイベントについて、人間が判読できる説明を提供したいと考えています。説明付きの別の表を追加することにしました。

監査済みイベント: id | class_name | event_name | description

および の最初の表にこれらの説明をマップしclass_nameますevent_name

次のドメインクラスがあります。

class AuditLog {

Integer id;
String actor;
String className;
Date dateCreated;
String eventName;
Date lastUpdated;
String newValue;
String oldValue;
Integer persistedObjectId;
String persistedObjectVersion;
String propertyName;
String uri;
AuditEvent event;

static mapping = {
    table 'audit_log';
    version false;
    cache usage: 'read-only';

    id column: 'id';
    actor column: 'actor';
    className column: 'class_name';
    dateCreated column: 'date_created';
    eventName column: 'event_name';
    lastUpdated column: 'last_updated';
    newValue column: 'new_value';
    oldValue column: 'old_value';
    persistedObjectId column: 'persisted_object_id';
    persistedObjectVersion column: 'persisted_object_version';
    propertyName column: 'property_name';
    uri column: 'uri';

}

のマッピングの書き方がわかりませんAuditEvent event。ここでは、既存のフィールドclass_name | event_nameを複合外部キーとして使用して、audit_eventテーブルにリンクします。あなたの助けに感謝します。

更新: AuditEvent にはフィールドがauditedClassあり、event

4

1 に答える 1

0

あなたの質問を本当に理解したかどうかはわかりませんが、質問から、クラスに対して行ったことと同じように、クラスを個別にhow to write mapping for the AuditEvent eventマッピングできると思います:AuditEventAuditLog

Class AuditEvent {
    String auditedClass
    String event
    String description
    ....

    static mapping = {
        table 'audited_event'
        auditedClass column: 'class_name'
        event column: 'event_name'
    }
}
于 2013-01-24T10:20:37.690 に答える