ホームページ > データベース > mysql チュートリアル > Criteria API を使用して Hibernate で GROUP BY 句を実装するにはどうすればよいですか?

Criteria API を使用して Hibernate で GROUP BY 句を実装するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-02 22:48:39
オリジナル
887 人が閲覧しました

How to Implement GROUP BY Clause in Hibernate Using Criteria API?

Hibernate での Criteria オブジェクトによるグループの実装

Hibernate では、Criteria API を使用して複雑なクエリを構築し、オブジェクトを使用してデータベースからデータを取得できます。志向の基準。 Criteria API を使用して SQL クエリを実装するには、Hibernate セッションで createCriteria() メソッドを使用する必要があります。

次のような SQL クエリの場合、

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name <operator> value
GROUP BY column_name
ログイン後にコピー

groupProperty を使用できます。 CriteriaQuery クラスの () メソッドを使用して、指定された列ごとに結果をグループ化します。また、Projections クラスによって提供される集計関数を使用して、必要な集計操作を実行することもできます。

Hibernate Criteria を使用してこのクエリを実装する方法の例を次に示します。

CriteriaQuery<Tuple> criteriaQuery = session.getCriteriaBuilder().createTupleQuery();
Root<SomeTable> root = criteriaQuery.from(SomeTable.class);

criteriaQuery.multiselect(
    root.get("column_name"),
    Projections.max(root.<Double>get("column_name")),
    Projections.min(root.<Double>get("column_name")),
    Projections.count(root.get("column_name"))
);

criteriaQuery.where(
    session.getCriteriaBuilder().ge(root.<Double>get("column_name"), value)
);

criteriaQuery.groupBy(root.get("column_name"));

List<Tuple> result = session.createQuery(criteriaQuery).getResultList();
ログイン後にコピー

これcriteria クエリは、column_name、その最大値、最小値、およびカウントを含むタプルのリストを、column_name によってグループ化して返します。集計関数のタイプは、集計対象の列のタイプによって異なることに注意してください。

以上がCriteria API を使用して Hibernate で GROUP BY 句を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート