使用する必要のあるビジュアルパラダイムを使用してJavaプロジェクトを開発しています。VisualParadigmはHibernateを使用しています。Genady RMIを追加するまで、私のプロジェクトは正常に実行されていました。RMIも使用する必要があります。
サーバー側には、データベースへのすべてのクエリを管理するMainDbがあり、クライアント側には、RMIRemoteを実装するUserWindowクラスとAdminWindowクラスがあります。これらの2つのクラスは、RMIを介してオブジェクトMainDbを取得します。
サーバーとクライアントを実行しているときに、「セッションまたはセッションが閉じられていません」というエラーでレイジー初期化に関連する例外が発生しました。
failed to lazily initialize a collection of role: dcl.UsuarioRegistrado.ORM_TieneVideosFavoritos, no session or session was closed.
私の知る限り、Hibernateはdcl.UsuarioRegistradoオブジェクトが作成されたのとは別のセッションを使用しています。問題は、クラスPersistentManagerがgetSession()のみを提供するため、セッションを管理していないことです。クラスPersistentManagerは、Hibernateを管理するためにVisualParadigmによって提供されるクラスです。
すべてのエンティティをlazy="false"に構成しようとしましたが、一部のエンティティのプロパティが正しく読み込まれなかったため、結果が悪化しました。たとえば、オブジェクト「Topic」は、Stringプロパティ「TopicName」をnullとしてロードされました。
では、同じセッションを維持するために何ができるでしょうか?
よろしくお願いします。申し訳ありませんが、英語が下手です。英語で説明するのは難しいので、改めて感謝します。