Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Klausa GROUP BY dalam Hibernate Menggunakan API Kriteria?

Bagaimana untuk Melaksanakan Klausa GROUP BY dalam Hibernate Menggunakan API Kriteria?

Patricia Arquette
Patricia Arquetteasal
2025-01-02 22:48:39902semak imbas

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

Melaksanakan Kumpulan mengikut Objek Kriteria dalam Hibernate

Dalam Hibernate, Criteria API membenarkan anda membina pertanyaan kompleks dan mendapatkan semula data daripada pangkalan data menggunakan objek -kriteria berorientasikan. Untuk melaksanakan pertanyaan SQL menggunakan API Kriteria, anda perlu menggunakan kaedah createCriteria() dalam sesi Hibernate.

Untuk pertanyaan SQL seperti:

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name <operator> value
GROUP BY column_name

Anda boleh menggunakan groupProperty () kaedah kelas CriteriaQuery untuk mengumpulkan hasil mengikut lajur yang ditentukan. Anda juga boleh menggunakan fungsi agregat yang disediakan oleh kelas Unjuran untuk melaksanakan operasi agregat yang diingini.

Berikut ialah contoh cara anda boleh melaksanakan pertanyaan ini menggunakan Kriteria Hibernate:

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

Ini pertanyaan kriteria akan mengembalikan senarai tupel yang mengandungi nama_lajur, nilai maksimum, nilai minimum dan kiraannya, dikumpulkan mengikut nama_lajur. Harap maklum bahawa jenis fungsi agregat bergantung pada jenis lajur yang anda agregatkan.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Klausa GROUP BY dalam Hibernate Menggunakan API Kriteria?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn