Grails GORM:如何通过复合外键链接表?

时间:2013-01-24 08:50:20

标签: grails mapping gorm

我有audit-logging插件的默认audit_log表,如下所示:

audit_log: id | class_name | event_name | ...

我想为记录的事件提供人类可读的描述。我决定添加另一个包含描述的表格:

audited_event: id | class_name | event_name | description

并将这些说明映射到class_nameevent_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表。非常感谢您的帮助。

upd:假设AuditEvent包含字段auditedClassevent

1 个答案:

答案 0 :(得分:0)

我不确定我是否真的理解你的问题,但是从问题how to write mapping for the AuditEvent event开始,我认为你可以单独映射AuditEvent类,就像你对类{{1}所做的那样}}:

AuditLog