[解決済み] Hibernateのプロキシを実際のエンティティオブジェクトに変換する方法
2022-04-20 20:02:49
質問
ハイバネート中
Session
私はいくつかのオブジェクトをロードしていますが、そのうちのいくつかは遅延ロードによりプロキシとしてロードされています。これはすべて問題なく、私は遅延ロードをオフにしたくありません。
しかし、後で私はいくつかのオブジェクト(実際には1つのオブジェクト)をRPC経由でGWTクライアントに送信する必要があります。そして、この具体的なオブジェクトはプロキシであることが起こります。だから、私はそれを本当のオブジェクトに変換する必要があります。私はHibernateで"materialize"のようなメソッドを見つけることができません。
クラスとIDがわかっているプロキシのオブジェクトを実数にするにはどうしたらいいですか?
今のところ、唯一の解決策は、Hibernateのキャッシュからそのオブジェクトを退避させ、再ロードすることですが、多くの理由で本当に悪いことです。
どのように解決するのですか?
私が使っている方法を紹介します。
public static <T> T initializeAndUnproxy(T entity) {
if (entity == null) {
throw new
NullPointerException("Entity passed for initialization is null");
}
Hibernate.initialize(entity);
if (entity instanceof HibernateProxy) {
entity = (T) ((HibernateProxy) entity).getHibernateLazyInitializer()
.getImplementation();
}
return entity;
}
関連
-
スレッド "main "での例外をEclipseで解決 java.lang.Error: 未解決のコンパイル問題、コンパイラとパッケージの不整合
-
this()の呼び出しはコンストラクタ本体の最初の文でなければならない 例外解決と原因分析
-
Eclipseプロンプトを実行する java仮想マシンを使用しない
-
マスキング このリソースにアクセスするには、完全な認証が必要です。
-
アイデア Springboot Web プロジェクトを jar にパッケージ化する場合、Error: 無効または破損した jarfile x.jar 解決策
-
javaでクラスを作成すると、enclosing classでないように見える
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] スタックトレースを文字列に変換するにはどうすればよいですか?
-
[解決済み] Hibernateの「オブジェクトは保存されていないトランジェントインスタンスを参照しています - フラッシュする前にトランジェントインスタンスを保存してください」エラーの修正方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
この行に複数のマーカーがある - HttpServletResponseが型エラーに解決できない
-
ファインバグタイプ
-
eclipse で「アクセス制限: タイプ 'HttpServer' は API ではありません」というプロンプトが表示される。
-
スキャナは、タイプに解決することはできません最もルーキー初心者の質問
-
Methodのinvokeメソッド実装のJavaリフレクション
-
マスキング このリソースにアクセスするには、完全な認証が必要です。
-
[オリジナル】java学習ノート【II】よくあるエラー クラスパス上のクラスファイルが見つからない、またはアクセスできない場合
-
HttpClientがGZIP形式でない場合の対処法
-
javax.net.ssl.SSLException: 読み取りエラー: ssl=0xdeae5100: システムコール中の I/O エラー、接続 res
-
このラインで複数のマーカーを解決する方法