2010-05-11 3 views
2

UI를 통해 사용자가 업데이트 한 엔티티를 감사하기 위해 이미 Hibernate Envers를 사용하고 있습니다. 그러나 백그라운드에서 실행중인 비동기 작업도 있고 Envers를 사용하여 비동기 작업을 감사하려고합니다. 이제는 UI에 대해 HttpRequest가 날짜, 사용자, 세션 등을 제공하는 변경 사항을 추적합니다. 백그라운드 작업의 경우 작업을 실행 한 날짜와 수정 한 정확한 작업을 추적하고 싶습니다. (직업 클래스).Hibernate - Envers - Multiple Audit targets

감사 엔티티 2 개, UI 1 개, 시스템 변경 1 개를 설정할 수 있습니까?

월터

답변

1

나는 아직 이것을 테스트하지 않은,하지만 나는 단순히 다음을 수행하고 각 수신기에서, 그리고

@RevisionListener(SystemRevisionListener.class) 
@Entity 
public class SystemRevision extends AbstractRevision 
{ 
    @Column(nullable = false, updatable = false) 
    protected QuartzTriggerHandle job; 

    @Column(nullable = false, updatable = false) 
    protected Class jobClass; 

    ... 
} 



@RevisionListener(WebRevisionListener.class) 
@Entity 
public class WebRevision extends AbstractRevision 
{ 
    @ManyToOne(optional = false) 
    @JoinColumn(nullable = false, updatable = false) 
    protected HttpRequest httpRequest; 

    ... 
} 

을, 나는 이러한 속성을 설정하려면 어떻게해야 무엇이든 할 . 엔티티가 변경된 방법, 사용자가 변경을 수행 한 경우 (그리고 어떤 요청이 연결되어 있는지) 또는 시스템이 엔티티를 변경 한 경우 변경 작업은 어떤 작업인지를 추적 할 수 있어야합니다. SystemRevision에 더 많은 속성을 저장하는 것이 가장 가능성이 높습니다. 인수 및 메서드 이름입니다.

관련 문제