3

生成されたプロキシ クラス オブジェクト (CGLib 拡張 POJO) がどのようにリモート クライアントに転送され、Lazy Init を生成する機能を保持しているのかがわかりません。例外。

それは、ある種のクラス (プロキシ) のすべての転送されたオブジェクトが再びプロキシとして再インスタンス化されるというある種の契約があることを意味しますか? クライアントはこれらの生成されたクラスをどこで取得しますか? 申し訳ありませんが、私にはまったくわかりません。

4

2 に答える 2

2

これは、リモートクライアントアプリケーションがHibernateに依存しているためです。リモートクライアントのクラスパスにHibernateがない場合は、を取得しNoClassDefFoundErrorます。これは、Hibernateでの抽象化がいかにリークであるかを示しています。

基本的に、ネットワークを介してオブジェクトを渡さないでください。メッセージを渡してください(必要に応じて、オブジェクトの作成に使用できます)。

于 2010-04-28T12:43:10.987 に答える
1

プロキシは初期化されていません。それらが転送されると、Session最初に関連付けられていたものが失われます。そのため、リモート側でそれらを初期化しようとすると、論理的に失敗します。

を使用して、送信する前にそれらを完全に初期化できます。Hibernate.initialize(aProxy)

詳細については、この回答を確認してください。

于 2010-04-18T10:29:16.310 に答える