問題タブ [hibernate-envers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
entity - Enversカスタムリビジョンエンティティの作成
プロジェクトの監査を設定しようとしています。正常に動作するデフォルト構成から開始しました。
次のステップは、変更を加えたユーザーを保存することです。マニュアルに従って、カスタムエンティティリビジョンを作成しました。
}
また、カスタムリスナー:
ログからのいくつかの行は次のとおりです。
デバッグ:org.hibernate.envers.configuration.metadata.AuditMetadataGenerator-エンティティcom.csbi.samples.domain.Propertyのファーストパス監査マッピングを生成します。
デバッグ:org.hibernate.envers.configuration.metadata.AuditMetadataGenerator-エンティティcom.csbi.samples.domain.Propertyの2番目のパスの監査マッピングを生成します。
INFO:org.hibernate.cfg.HbmBinder-マッピングクラス:com.csbi.samples.domain.Property_AUD-> PROPERTIES_AUD
INFO:org.hibernate.cfg.HbmBinder-マッピングクラス:org.hibernate.envers.DefaultRevisionEntity-> REVINFO
出力の最後の行を見てください。の代わりにまだDefaultRevisionEntity
マップされていCustomRevisionEntity
ます。
何が悪いのかわかりません。助言がありますか?
spring - hibernate-envers RevisionListener スプリング Bean としてのスプリング統合
hibernate-envers のリビジョン リスナーでデータベース処理を行う必要があります。そのためには、Spring Framework の injection 機能が必要です。これはどのように実装できますか?これは必要性を表すコードですが、CustomRevisionListener は Envers コードのコンストラクターによってインスタンス化されます。Spring はSecurityContextHolder
静的サービス ロケータとしてのみ持っています。他の豆を注入する方法は?
netbeans - EnversHibernateToolTask の NetBean ビルド ファイルの問題
Envers の hibernate スキーマ ジェネレーターを組み込もうとしています。このターゲットを追加しました:
問題は、エラー taskdef class org.hibernate.tool.ant.EnversHibernateToolTask cannot be found using the classloader AntClassLoader[myproject\lib\hibernate-persistence*.jar] が表示されることです。
助けは素晴らしいでしょう。
ありがとう、イド。
java - データベースの Java モニターの変更 - Hibernate と envers
データベースへの変更を監視するサーバー側アプリケーションを作成しています。これを Hibernate で行う予定です。リスナーをセットアップして、データに変更が加えられた場合、登録されているオブザーバーに更新があることを通知し、それをプルする別のリクエストを送信できるようにしたいと思います。
Hibernate envers と AuditEventListener について読みました。私の質問は、私のアプリケーションはデータを取得するだけで設定しないので、Envers リスナーは私のアプリケーションによって行われたのではないテーブルの変更をリッスンできますか?
jpa - マルチレベル エンティティ リビジョンの envers
ユーザーは n 人の連絡先を持っています。連絡先はローカライズされたコメントを持つことができます (コメントは連絡先間で共有されます)。Java Bean:
連絡先 (Contact.comment) のドイツ語ローカライズ (Comment.de) を変更すると、新しいリビジョンが作成されますが、ユーザーには作成されません。envers にユーザー リビジョンを要求しても、この「レベル 2 の変更」は表示されません。ユーザーと連絡先の関係は変更されておらず、連絡先コメントのドイツ語の文字列のみが変更されたためです。
しかし、ユーザー履歴に新しいエントリを表示したい (連絡先 XYZ のドイツ語のコメントを変更)。
これどうやってするの?:D
ありがとう
jakarta-ee - Enversを使用して多対多の関係を監査するのが難しい
Enversを使用して、埋め込みコンポーネントとの多対多の関係を監査したいのですが、ComponentTypeがサポートされていないというMappingExceptionで問題が発生しています。これは、スタックトレースの関連部分です。
Enversのリファレンスを読むと、Enversは私がやろうとしていることを処理できるようです。参考文献によると:
@Mappedsuperclassから継承された、または埋め込みコンポーネント内の一部のフィールド/プロパティの監査動作をオーバーライドする場合は、コンポーネントのサブタイプまたは使用サイトに@AuditOverride(s)アノテーションを適用できます。
これが私の協会の実体です。埋め込みコンポーネントの監査を防ぐために、クラスレベルで@AuditOverrideを使用しようとした場所がわかります。また、フィールド自体の注釈を使用してみました。どちらも違いはありませんでした。
ユーザーエンティティは次のとおりです。
役割エンティティは次のとおりです。
埋め込まれたコンポーネントは次のとおりです。
そして最後に、完全を期すために、これが私の基本エンティティです。
Enversのリファレンスを読み、フォーラムを熟読しましたが、情報はかなりまばらに見えます。これに関するアイデアや指針はありますか?
java - Envers、PostgreSQL、TINYINT
OracleとMySQLの両方でEnversを問題なく使用しています。現在PostgreSQLを試していますが、監査テーブルがREVTYPE
タイプの列で作成されるという問題がありますTINYINT
。
TINYINT
PostgreSQLではサポートされていません。
タイプを変更する方法はありREVTYPE
ますか?
例:
編集:
問題が解決しました:Hibernate方言の変更を忘れました。
java - Hibernate Envers リビジョン情報 (変更リスト)
プロジェクトにリビジョン変更のリストを追加したい (情報アイコンをクリック):
最良の方法はどれですか?
ps: EntityTrackingRevisionListener は既に使用しています。
ありがとう。
hibernate - CascadeType.ALLを使用する場合のHibernateで、最上位エンティティを保存すると、関連するエンティティに不必要な更新が発生します
@OneToManyを別のエンティティ(CoverArt)にマッピングするエンティティクラス(Song)を用意し、メインエンティティを保存してカバーアートの永続化を処理する方が簡単なように見えるため、カスケードをALLに設定します。
しかし、コードの後半で、データベースからクラスのインスタンスを取得し、セッション内でSongエンティティの1つのフィールドだけを変更すると、その曲にリンクされているすべてのカバーアートエンティティが更新されることがわかりました。カバーアートは何も変わっていませんが、なぜこれをしているのですか?
また、それが問題を引き起こすとは思わないが、私はEnversを使用しており、CoverArtテーブルへの(一見)不必要な追加の更新は、Enversに不要な監査テーブルを作成させるというノック効果もあります。
1つのフィールドを変更するCascadeTypeアノテーションを削除しても、カバーアートエンティティは更新されず、カバーアートを追加するときに追加のロジックを追加する限り、すべてが正常に機能しますが、必要がないことを望んでいました。これ。