>데이터 베이스 >MySQL 튜토리얼 >Criteria API를 사용하여 Hibernate에서 GROUP BY 절을 구현하는 방법은 무엇입니까?

Criteria API를 사용하여 Hibernate에서 GROUP BY 절을 구현하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-02 22:48:39906검색

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

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();

이것은 기준 쿼리는 column_name, 최대값, 최소값 및 개수를 포함하는 튜플 목록을 반환하며, 이는 column_name별로 그룹화됩니다. 집계 함수의 유형은 집계하는 열의 유형에 따라 다릅니다.

위 내용은 Criteria API를 사용하여 Hibernate에서 GROUP BY 절을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.