2

Java ベースのサーバーとクライアントがあり、RMI を介して相互に通信しています。サーバーのデータ アクセス レイヤーは JPA と Hibernate で実装され、エンティティはパラメーターとしてよく使用されます。

クライアントには Hibernate コードがなく、動的コード ダウンロードが無効になっているため、サーバーがクライアントにエンティティを送信するときは、プロキシではなく実際のエンティティを送信する必要があります。さらに、遅延フェッチされたすべての属性をプリロードせずに、エンティティをそのまま送信する必要があります。これは、ほとんどの場合、クライアントが必要とすることはないためです。

これらの要件を Hibernate で実装することは可能ですか?

4

2 に答える 2

0

私が知っている唯一のきれいな方法 (つまり、オブジェクトのすべての関連付けを取得しない方法) は、データ転送に別のオブジェクト レイヤーを使用することです。

または、プロキシ セットを使用してオブジェクトを休止状態にする代わりに、必要なデータを再設定した同じオブジェクト タイプを送信することもできます。

于 2013-07-22T11:41:50.193 に答える
0

クエリですべてのプロパティを取得できます

ドキュメントから

プロパティ レベルの遅延フェッチ (バイトコード インストルメンテーションを使用) を使用している場合、すべてのプロパティをフェッチすることを使用して、Hibernate に最初のクエリで遅延プロパティをすぐにフェッチさせることができます。

from Document fetch all properties order by name

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html

または、マッピングでイーグルフェッチを使用します...

于 2013-07-12T16:54:22.727 に答える