3

Hibernate を使用してオブジェクトを選択したいが、そのメンバーの一部 (私の場合はコレクション) を除外したい。モデル オブジェクトはアプリケーションで広く使用されているため、マッピングを変更したくありません。何か案は?ありがとう

4

2 に答える 2

1

特にこれが読み取り専用のユースケースである場合は、いつでも HQL に戻すことができます。HQL を使用すると、基本的に必要なフィールドのみを返す SQL クエリを作成できますが、生の SQL よりも安全であり、Hibernate をバイパスせず、ORM コアと連携して動作します。

SELECT 句を使用して、必要な属性のみを取得します。

于 2012-11-22T08:02:14.980 に答える
1

マッピングを変更せずにやりたいことができるかどうかはわかりません。個人的には、遅延ロードを簡単にオーバーライドできるので、マッピングを熱心ではなく遅延に変更します。ほとんどの場合 HQL を使用していると仮定すると (すでに使用していると言うため)、 HQLfetch <field-name>fromセクションに追加することで熱心な読み込みを維持できます。次に、具体的に必要な場所にフェッチを HQL に追加しないでください。遅延読み込み。もちろん、この種の変更では、新しいクエリで熱心な読み込みと遅延読み込みのどちらが必要かを検討する必要があるため、チームにそれを伝える必要がありますが、全体的にはそれほど混乱を招くものではありません。

于 2012-11-22T08:31:39.940 に答える