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 サイトの他の関連記事を参照してください。