在Hibernate 中實作Group by 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();
This criteria 查詢將傳回包含列名稱、最大值、最小值和計數的元組列表,並按列名稱分組。請注意,聚合函數的類型取決於您要聚合的列的類型。
以上是如何使用 Criteria API 在 Hibernate 中實作 GROUP BY 子句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!