状況: クラスMyClassとその「軽量」バージョンMyClassLiteがあるので、
public class MyClass : MyClassLite
クラスのマッピングにもhbmファイルを使用します (それらは同じテーブルにマッピングされます)。問題は、 MyClassLiteエンティティのリストを取得しようとすると、MyClassLiteエンティティだけでなく、さらにMyClassエンティティのリストも取得することです。どうすればそれを取り除くことができますか?
状況: クラスMyClassとその「軽量」バージョンMyClassLiteがあるので、
public class MyClass : MyClassLite
クラスのマッピングにもhbmファイルを使用します (それらは同じテーブルにマッピングされます)。問題は、 MyClassLiteエンティティのリストを取得しようとすると、MyClassLiteエンティティだけでなく、さらにMyClassエンティティのリストも取得することです。どうすればそれを取り除くことができますか?
この ClassLite とは正確には何ですか? Class が ClassLite を継承するのはなぜですか? ここに本当に「IS-A」関係があるのでしょうか?
ClassLite の存在理由は?たとえば、「クラス」インスタンスの概要を表示する必要がある場合に使用するクラスですか? 次に、これが当てはまる場合は、DTO または「ビュー」、プロジェクション、および AliasToBeanEntityResultTransformer を確認する必要があります。
マッピングまたはクエリでリストの熱心な読み込みを構成すると、MyClass 実装が取得されます。
条件クエリでは:
Criteria.SetFetchmode("MyClassListProperty", Fetchmode.Eager)
hql クエリで:
left join fetch MyClassListProperty
マッピングファイルで:
<set [...] lazy="false"> ...