休止状態の基準クエリを使用して、コレクションの一部のみを取得したいと考えています。例として、複数の Student オブジェクトを含む Class オブジェクトがあるとします。クラスのリストを取得したいのですが、データベース クエリを 1 回だけ使用して、ドイツの学生だけを学生コレクションにフェッチする必要があります (残りは必要なく、大きなオーバーヘッドになります)。
hibernate のそれ以降のバージョン (3.6.4 より前だと思います) では、次のようにフィルター処理された createCriteria を使用してこれを行うことができます。
criteria.createCriteria("students", "studentscollection", Criteria.LEFT_JOIN,
Restrictions.eq("studentscollection.country", "DE"));
問題は、hibernate の現在のバージョンでは、これによりコレクションが初期化されないままになり、大規模なデータベース クエリがトリガーされて、アクセス時にすべての単一コレクションのコレクション全体が読み込まれることです。これは、1 回ではなく数百回のクエリを引き起こす大きなパフォーマンスの問題です。
現在の休止状態のバージョンで、1 つのクエリを使用してこれを行うための解決策はありますか?