Grails GORM:如何通过复合外键链接表?
我有一个来自插件的默认审核日志表,如下所示: 审核日志:Grails GORM:如何通过复合外键链接表?,grails,mapping,gorm,Grails,Mapping,Gorm,我有一个来自插件的默认审核日志表,如下所示: 审核日志:id |类|名|事件|名|…… 我想为记录的事件提供一个可读的描述。我决定添加另一个带有说明的表: 已审核事件:id |类别|名称|事件|名称|描述 并将这些描述映射到class\u name和event\u name上的第一个表 我有以下域类: class AuditLog { Integer id; String actor; String className; Date dateCreated; String eventName;
id |类|名|事件|名|……
我想为记录的事件提供一个可读的描述。我决定添加另一个带有说明的表:
已审核事件:id |类别|名称|事件|名称|描述
并将这些描述映射到class\u name
和event\u 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事件
编写映射。在这里,我想使用现有字段class_name | event_name
作为复合外键来链接audit_event
表。谢谢你的帮助
upd:假设AuditEvent有字段
auditedClass
和event
,我不确定是否真正理解了您的问题,但是从问题如何为AuditEvent事件编写映射
,我想您可以分别映射AuditEvent
类,正如您对classAuditLog所做的那样:
Class AuditEvent {
String auditedClass
String event
String description
....
static mapping = {
table 'audited_event'
auditedClass column: 'class_name'
event column: 'event_name'
}
}
这不是我问的问题。我希望事件
字段在加载审核日志
时初始化。也就是说,我想加入AuditEvent
表并加载event
对象。好的,您可以将事件定义为属性。是否可以包含指向此“数据审核”插件的链接?在grails.org上没有使用这个搜索词的结果。@Stuporman,对不起,这是审计日志!这里:我会更新帖子谢谢你的更新。我必须研究这个插件,但是如果在我弄明白之前没有其他人得到答案,我会尽我所能给你一个答案。顺便说一句,我想研究这个插件的原因是我从个人经验中发现,我通常无法回答我自己的问题,因为我从错误的角度来处理这个问题。