1

Grails で hibernate envers を使用し、@Audited でいくつかのエンティティを定義して、API によって監査できるようにしています。一部のエンティティは監査する必要がないため、スムーズに実行される @Audited(... NOT_AUDITED) を定義しています。

しかし、今回は、次のように定義された関係があります

static hasMany = { foos : Foo }

Foo もクラス レベルで NOT_Audited として宣言されていますが、envers はこれを無視して AUDIT テーブルを検索しています。ただし、タイプが監査されるべきではないことを envers に通知するために、アノテーション @NotAudited を関係に追加する必要があるかもしれないことがわかりました。

だから、私は試しました:

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

答えが見つかったかどうかはわかりませんが、ゲッターをオーバーロードし、注釈を付ける必要があります:

@NotAudited
def getFoos() {foos}

少なくとも、直接の関連付けでは機能します...

于 2013-10-22T09:55:22.313 に答える