1

我正在使用带有 Grails 的休眠环境,使用 @Audited 定义一些实体以让它们被 API 审计。有些实体不应该被审计,所以我定义了 @Audited(... NOT_AUDITED) ,它运行也很顺利。

但这一次,我定义了以下关系

static hasMany = { foos : Foo }

Foo 在类级别也被声明为 NOT_Audited,但 envers 忽略了这一点并搜索 AUDIT 表。但是,我已经看到可能有必要将注释 @NotAudited 添加到关系中,以通知 envers 该类型不应该被审计。

所以,我试过:

static hasMany = {@NotAudited foos : Foo }

// Or desperately:
@NotAudited
static hasMany = { foos : Foo }

要么我的方法似乎是错误的,要么 GORM 忽略了注释。

有没有人有经验,在课堂级别定义“Not_Audited”是不够的,比如

@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
class Foo{
   ...
}
@Audited
class Bar{
   static hasMany = { foos : Foo }
   ...
}

编辑:也许值得一提的是 static hasMany = {@NotAudited foos : Foo }

遇到编译错误。所以,也许我的问题只是如何将注释添加到关系中。

4

1 回答 1

3

我不知道你是否找到了答案,但你需要重载getter,并在上面加上注释:

@NotAudited
def getFoos() {foos}

至少,它适用于直接关联......

于 2013-10-22T09:55:22.313 回答