2011-02-06 3 views
0

JPA에는 CRUD 작업 전에 작업을 허용하는 @PrePersist 및 @PreUpdate 주석이 있습니다. 이것에 해당하는 ApsectJ를 찾으려고합니다.감사 사용 사례에 대해 @PrePersist 및 @PreUpdate에 해당하는 AspectJ를 생성하는 데 도움이됩니다.

내 유스 케이스는 한 팀에서 만든 JPA 응용 프로그램으로, 수명주기 청취자를 원래 엔터티에 추가하지 않고도 각각의 사전 지속 및 사전 업데이트에 감사 화면을 추가하려고합니다.

답변

2

엔터티에 @PrePersist 및 @PreUpdate 메서드가 없으면 ITD (AspectJ intertype declarations)를 사용하여 해당 메서드를 도입 할 수 있습니다.

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

    public interface AuditedEntity {} 

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

    ... similar code for @PreUpdate 
} 

엔티티에 이미 메소드가있는 경우 감사를 수행 할 것을 조언 할 수 있습니다.