私はJavaFX
のアプリケーションTreeTableView
を持っています。Hibernate:マップを返す方法<String、List <Object>>
ツリー内に商品のリストを表示したいと思います。ツリーの第1レベルにProduct.articleが含まれている必要があります。
article1/
-- name model sizes
-- name model sizes
article2/
-- name model sizes
-- name model sizes
Iを一覧<String article>
上のforeachでこれを開発してきたが、生産上のデータベース・テーブルが1000以上の記事が含まれているだろう:ツリーの第二のレベルは、このように、製品のリストがProduct.articleが含まれている必要があります。各記事には、データベースからの製品のリストが個別のクエリによって作成されている必要があります。それは遅くなるでしょう...
マップ<String article, List<Product>>
としてHibernateクエリの結果セットを取得する方法はありますか?
P .:私の悪い英語を申し訳ありません。それだけで単一のクエリを必要とするよう合理的に効率的でなければなりません
Map<String, List<Product>> productsByArticle = allProducts.stream()
.collect(Collectors.groupingBy(Product::getArticle));
、および:
それは、単一のクエリ内のすべての記事のための全体 '一覧'を取得するために動作します、クライアント側で必要な構造に整理しますか?そうすれば、1つの(大規模な)クエリが得られます。あなたの説明から、 'TreeTableView'のバッキングモデルは、とにかくデータのリスト全体を必要とします。 –
はい、私は単一のクエリをしたい、そして、クライアント側の構造にそれらを整理します。しかし、私は、フレームがロードされているときに、製品のリストを表示するために1000を超えるクエリをデータベースに持っています。つまり、これは悪い決断です。おかげさまで – Virkom