2016-07-20 13 views
0

Hibernate Enversでは、JPAエンティティごとに "_AUD"の接尾辞を持つ対応する監査テーブルを作成し、AuditReaderを使用してクエリできます。Hibernate Enversによる監査:IDが 'id'でない場合の問い合わせ方法

このAuditReaderは、エンティティのIDがIDであると仮定し、それは、のgetId()ゲッターを有すること。私のケースでは、私のエンティティはすべてというユーザーIDaccountIdなどのように、異なる名前の識別子を持っています。すべてがさまざまなdataTypesを持っています。

idのfieldNameを知らなくても、監査履歴データを取得するための定型記号を減らすパターンを作成するにはどうすればよいですか? Enversはタイプとの間で必要なすべての平等/不平等チェックを処理するためAuditEntity.id()が:)

AuditQuery query = getAuditReader() 
    .forRevisionsOfEntity(MyEntity.class. true, false) 
    .add(AuditEntity.id().eq(myEntityClassId)); 

何のためにあるのかあなたのエンティティの識別子プロパティに何プロパティマップを知っている必要はありませんされて

+0

AuditReaderは、エンティティのIDが** id **であると仮定しますか? – Naros

答えて

0

背後にあるプロパティマッピング。

0

getAuditReader().createQuery().forRevisionsOfEntity(MyEntity.class, false, false).add(AuditEntity.property("accountId").eq(12)); 
関連する問題