カスタムRevisionEntityに「org.hibernate.envers.default_schema」を使用すると、このは、どのように私は休止状態-envers 4.2.8を使用しています
@Entity
@RevisionEntity(CustomRevisionEntityListener.class)
@Table(name = "REVINFO")
public class CustomRevisionEntity {
...
}
のような変更を行ったユーザーを追加するために自分のCustomRevisionEntityを作成しましたアプリケーションのコンテキストに
<prop key="org.hibernate.envers.default_schema">myschema_audit</prop>
を追加して、監査テーブルのスキーマを変更しました。
監査テーブルはすべてスキーマmyschema_audit
に作成されますが、REVINFO
テーブルは残念ながらデフォルトスキーマmyschema
でまだ作成されています。
私の@Table
注釈のためですか? schema
属性を追加する必要がありますか?もしそうなら、どうすればそのアノテーションの対応するhibernateプロパティを使うことができますか?
@Table
注釈を省略しようとしましたが、REVINFO
テーブルは作成されません。
REVINFO
テーブルがmyschema_audit
で作成されているとはどうすれば実現できますか?
'@ Table'アノテーションを除外することについては正しいですね。 ハードコードされたスキーマを指定するのではなく、mavenプロファイルに応じて値が変更されるので、代わりに対応するhibernateプロパティを使用します。どのようにそうするのか? – Ole
カスタムリビジョンエンティティは技術的にはORMエンティティなので、ORMのルールに従うため、Hibernate内で自動化された方法はありません。 Enversは、この場合、そのエンティティと結びつき、監査イベント中に行を挿入する方法を知っています。あなたができると思うのは、これを達成するためにコンパイルする前に、mavenのリソース置換パスを適用することです。もちろん、それ自体の欠点や懸念が伴います。 – Naros
私が調べることができるのは、ユーザーがカスタムリビジョンエンティティを使用しており、そのスキーマ/カタログをORMのエンベロープのものではなくEnversのルールに従うように設定している場合、Enversのパス中にリビジョンエンティティのスキーマを_alter_できるかどうかです。 – Naros