2017-04-11 9 views
0

私はEnversを監査に使用しており、エンティティが監査されることを防止しようとしています。エンティティが関係の一部である場合、以下のように、FKフィールドを関連する監査テーブル(Receipt_AuditのpersonId)に保存します。Hibernateリレーションテーブルが常に監査されないようにします。

@Entity 
@Audited 
@Table(name = "Receipt") 
public class ReceiptModel { 
    @Valid 
    @ManyToOne 
    @JoinColumn(name = "personId") 
    private PersonModel person; 

    ... 
} 

次のようにPersonModelが構成されている:領収書を永続

@Entity 
@Audited(targetAuditMode = NOT_AUDITED) 
@Table(name = "Person") 
public class PersonModel { 
    ... 
} 

は、上記構成の素晴らしい作品。しかし、Personを永続化しようとすると、そのエンティティに対して監査テーブルが存在しないため、Personが爆発します。

答えて

1

実際には@Audited(targetAuditMode=NOT_AUDITED)を実際の関係Receipt内で使用し、Personを監査対象としてマークしないでください。

@Entity 
@Audited 
@Table(name = "Receipt") 
public class ReceiptModel { 
    @Valid 
    @ManyToOne 
    @JoinColumn(name = "personId") 
    @Audited(targetAuditMode = NOT_AUDITED) 
    private PersonModel person; 
    ... 
} 

@Entity 
@Table(name = "Person") 
public class PersonModel { 
} 
+0

私はこのコードが動作していないように見えるようになったバグがありました。これは絶対に解決ですが、それは仲間に感謝します。 –

関連する問題