Hibernate Enversを使用してエンティティを監査します。Hibernate Enversを使用して結合テーブルおよび関連するエンティティを監査する方法はありますか?
私は1監査対象エンティティFoo
を持っており、これはプロパティとしてList<Bar>
を持っています。しかし、私はBar
のエンティティを監査したくありません。
@Entity
@Audited
public class Foo {
@JoinTable(name = "T_FOO_BAR", joinColumns = @JoinColumn(name = "FOO_ID"), inverseJoinColumns = @JoinColumn(name = "BAR_ID"))
@ManyToMany(cascade = PERSIST)
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
public List<Bar> getBars() {
return bars;
}
}
は今、私はFoo
の改正取得したい:したがって、私はそれを書いた私はすべてのデータを取得したい場合、残念ながら
AuditReader reader = AuditReaderFactory.get(getEntityManager());
Foo revision = (Foo) reader.createQuery().forEntitiesAtRevision(Foo.class, 42).getSingleResult();
(すなわちときに怠惰な負荷bars
)
select ... from T_FOO_BAR_AUD x, T_BAR y where ...
私も@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
を使用して、休止状態Enversがリンクを保つだろうと:それは照会しようとしたとして、私は、エラーを取得しORA-00942: table or view does not exist
現在のの項目はの現在のエンティティです。
テーブルT_BAR
とT_FOO_BAR
(結合テーブル)を明示的に監査する必要なく、私の問題をどのように解決できますか?他の言葉では、リビジョンエンティティからbars
のリストを取得すると、現在のエンティティからbars
のリストを取得します(Foo
とBar
の間のリンクは監査されません)。
ありがとうございました。