0

JPA には、CRUD 操作の前に操作を許可する @PrePersist および @PreUpdate アノテーションがあります。これに相当する ApsectJ を見つけようとしています。

私のユース ケースは、1 つのチームによって構築された JPA アプリケーションであり、元のエンティティにライフサイクル リスナーを追加せずに、発生する各 Pre-Persist および Pre-Update に監査アスペクトを追加したいと考えています。

4

1 に答える 1

2

エンティティに@PrePersistメソッドと@PreUpdateメソッドがない場合は、AspectJ型間宣言(ITD)を使用してこれらのメソッドを導入できます。

public aspect Audit {
    declare parents: @Entity * implements AuditedEntity;

    public interface AuditedEntity {}

    @PrePersist
    public void AuditedEntity.prePersistAuditing() {
       ... auditing logic
    }

    ... similar code for @PreUpdate
}

エンティティにすでにメソッドがある場合は、監査を実行するようにエンティティにアドバイスできます。

于 2011-02-06T21:01:26.250 に答える