問題タブ [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.
java - org.hibernate.MappingException: サポートされていないタイプの ENVER
複合主キーを導入したときに、このエラーが発生し始めました。理由についての理想はありますか?私はこれを理解しようとして失敗しました。
更新編集 - 1
Hibernate 3.3.1 (JBoss 5.1 に同梱) を Spring MVC 2.5.6 および jboss-envers 1.2.2GA と共に使用する。
ポジョ:
hibernate - Maker-Checker サポート Envers
enversを使用してメーカーチェッカー機能のこれらのユースケースを解決する方法を教えてください。
1) 作成者は、エンティティ (部門など) を作成する要求を作成します。エンティティ テーブルにデータを挿入しないでください。監査表に記録する必要があります
2) チェッカーは承認のためにエンティティのリストを取得します -- データは監査テーブルからクエリする必要があります
3) チェッカーは保留中のリクエストを表示します -- 元のレコードを変更とともに表示します
4) チェッカーがリクエストを承認します -- データが監査テーブルからエンティティ テーブルに移動/上書きされます。
5) メーカーによるエンティティの変更要求 -- エンティティ テーブルは変更されません。変更は監査テーブルに記録されます。変更は、承認時にのみエンティティ テーブルを移動します。
このソリューションは、次の制約に対処することが期待されています
1) マスター/ディテール、つまり部門には従業員が含まれます
2) 一括承認、つまり、部門に 10,000 人の従業員がいる場合、承認プロセスは妥当なパフォーマンスを発揮するはずです。最後のユース ケースでは、データの検証 + 承認ルール + 監査テーブルからエンティティ テーブルへのデータの移動を実行する必要があります。
3) 上記のユースケースはすべてマスター/ディテールに適用されます。
envers の専門家から知りたいのですが、 envers を使用して上記のすべてのユースケースを実装することは可能ですか? Envers にはどのような変更が必要ですか?
よろしくお願いします -- Kiran.Kumar
hibernate - Hibernate Envers:リビジョンのクエリで問題が発生しました
監査にはHibernateEnversを使用します。私のエンティティは次のようになります。
ここで、次のようなリビジョンを照会したいと思います。
最初のクエリは機能し、2番目のクエリを実行すると次の例外がスローされます。
これがClassCastExceptionにつながる理由がわかりません。何か考え、私が欠けているものは何ですか?
java - Spring-Hibernate-envers webapp の監査テーブルにデータが挿入されない
私はSpringとHibernateのWebアプリに取り組んでいます。監査には Envers を使用する必要があります。
しかし、アプリケーションを実行すると、監査テーブルのみが作成され、監査テーブルにデータが挿入されません。
構成ファイル:
@Transactional
サービスクラスでアノテーションを使用しています。前もって感謝します。
java - Hibernate Envers:Enversプロキシの初期化
Hibernate Enversでは、設定されているフェッチタイプに関係なく、エンティティの関連するすべてのコレクションが遅延ロードされます。したがって、他のエンティティのコレクション(もちろん両方とも監査済み)を持つエンティティを監査クエリする場合、コレクションはSetProxy
最初は(デバッグ時に表示されます)です。
では、どうすればそのプロキシを初期化できますか?使用しHibernate.initialize()
ても効果はありません(HibernateとEnversが異なるプロキシオブジェクトを使用しているためだと思います)。アイテムを反復処理することでセットを初期化できることはわかっていますが、エンティティに複数のコレクションがあり、メンテナンスの問題は言うまでもなく、それは私にとってオプションではありません。
Hibernateセッションがすでに閉じられている(ドメインオブジェクトをdtosに変換する)後でコレクションにアクセスするため、これらを熱心に初期化する必要があります。
Hibernate3.5.6を使用しています。
java - envers監査テーブル名
私は、エンバーに関連するある種の素朴な質問があります。監査テーブルにデフォルト以外の名前を付けることはできますか。つまり、TableName_AUDと、プレフィックスまたはサフィックス、フルネームだけではありません。
java - フィールド名の周りに引用符を使用するように Hibernate-Envers を強制する方法は?
次のように定義されたプロパティを持つテーブルがあります。
@Column(name="\"SERIAL#\"")
Hibernate がデータを挿入すると、すべて正常に動作します。しかし、Hibernate-Envers(HE) に関して言えば、HE はフィールド名を二重引用符で囲むのを忘れています。
フィールドの周りに二重引用符を使用するように強制するにはどうすればよいですか?
java - Hibernate Envers データをバージョンに戻す
データの履歴リビジョンを保存するために Hibernate envers を使用しています。データを特定のリビジョンに戻す必要があります。バージョン列を使用して楽観的ロック アプローチを使用しているため、以前のリビジョンからデータを保存しようとすると、StaleObjectException
. Hibernate に以前のリビジョンのデータを強制的に保存させる方法はありますか?