2013-07-01 4 views
0

jboss 엔버를 처음 사용하고 있습니다. 그것은 또한 사용하기 쉬운 것 같다.jboss hibernate envers hbm2ddl (EnversHibernateToolTask)은 감사되지 않은 엔티티에 대한 감사 테이블을 만듭니다.

그러나 필자는 빌트인 ddl 생성을 사용하여 주석이 달린 클래스에서 ddl을 만들 때 감사하고 싶은 모든 클래스의 감사 테이블을 만들고 있습니다.

@Entity 
@Table(name="partner") 
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED) 
public class Partner { 

내가 더 partner_aud 테이블이 때문에 주석이 클래스에 대해 생성되지 않을 것으로 예상 :

예를 들어, 나는 다음과 같이 내가 주석 한 클래스를 가지고있다.

그러나 ddl은 partner 및 partner_aud 모두에 대해 생성됩니다.

내가 뭘 잘못하고 있니?

Ant 빌드 설정은 다음과 같습니다

<hibernatetool destdir="."> 
<classpath> 
<path refid="toolslib" /> 
    <path location="/Users/matt/workspace/new_Pricing_Tool_PoC/lib/slf4j-api-1.5.8.jar" /> 
    <path location="/Users/matt/workspace/new_Pricing_Tool_PoC/lib/slf4j-log4j12-1.5.8.jar" /> 
    <path location="/Users/matt/workspace/new_Pricing_Tool_PoC/bin" /> 
<fileset dir="new_Pricing_Tool_PoC/lib/"> 
    <include name="*.jar"/> 
    </fileset> 
    <pathelement location="classes"/> 
    <dirset dir="new_Pricing_Tool_PoC/bin"> 
    <include name="**/classes/**"/> 
    </dirset> 
</classpath> 
<jpaconfiguration persistenceunit="pricing" /> 
<hbm2ddl 
    drop="false" 
    create="true" 
    export="false" 
    outputfilename="new_Pricing_Tool_PoC/db/auto-build.sql" 
    delimiter=";" 
    format="true"/> 

을 또한, 나는 정말 파트너 객체의 과거 버전을 저장하기 위해 감사 테이블을 사용하고 최대 절전 모드 있음을 확인했다.

답변

0

나는 이것이 @Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED) 주석의 오용으로 인한 것임을 발견했습니다.

이 주석을 클래스 정의에서 제거하면 문제가 해결되었습니다.

비 감사 법인에 감사 법인을 링크 할 때,이 예와 같이 연결 방법에 해당 주석을 추가

:이 방법은 서비스 입니다 Service.java에서 가져옵니다

@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED) 
    @ManyToOne(optional=false) 
    public Partner getPartner() { 
     return partner; 
    } 

감사하지만 파트너가 아닙니다.