2011-02-06 13 views
0

JPAでは、CRUD操作の前に操作できる@PrePersistアノテーションと@PreUpdateアノテーションがあります。 私はこれに相当するApsectJを見つけようとしています。監査ユースケースの@PrePersistと@PreUpdateに相当するAspectJを作成するためのヘルプ

私のユースケースは、1つのチームによって作成されたJPAアプリケーションで、元のエンティティにライフサイクルリスナーを追加することなく、発生する各プレサスペンドおよびプレアップデートに監査アスペクトを追加します。

答えて

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 
} 

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

関連する問題