我正在使用带有Grails的hibernate envers,使用@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}
遇到编译错误。所以,也许我的问题就是如何在关系中添加注释。
答案 0 :(得分:3)
我不知道你是否找到了答案,但你需要重载吸气剂,并在其上加注释:
@NotAudited
def getFoos() {foos}
至少,它适用于直接联想......