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!