Pertanyaan Had JPQL/HQL
Dalam Hibernate 3, anda mungkin menghadapi keperluan untuk melaksanakan pertanyaan had, serupa dengan klausa LIMIT MySQL. Walaupun kaedah setMaxResults() boleh digunakan, anda mencari alternatif HQL.
Fungsi Sejarah
Versi lama Hibernate/HQL dibenarkan untuk penggunaan klausa LIMIT dalam pertanyaan HQL. Walau bagaimanapun, ciri ini tidak disokong secara rasmi dan telah dihapuskan dalam versi seterusnya.
Penyelesaian Semasa
Pendekatan yang disyorkan untuk pertanyaan had dalam JPQL atau HQL ialah menggunakan Kaedah Query.setMaxResults(). Kaedah ini menetapkan bilangan maksimum hasil yang akan dikembalikan oleh pertanyaan dan secara berkesan mengehadkan bilangan rekod yang diambil.
Pertimbangkan pertanyaan HQL berikut menggunakan setMaxResults():
Query query = session.createQuery("from ATable order by aTableColumn desc"); query.setMaxResults(20); List results = query.list();
Ini pertanyaan mendapatkan semula maksimum 20 baris daripada ATable, menyusunnya dalam susunan menurun oleh aTableColumn medan.
Ringkasnya, penggunaan klausa LIMIT dalam JPQL atau HQL tidak pernah disokong secara rasmi dan telah dialih keluar dalam versi yang lebih baharu. Alternatif yang disyorkan ialah menggunakan kaedah Query.setMaxResults() untuk mengehadkan bilangan hasil yang dikembalikan oleh pertanyaan.
Atas ialah kandungan terperinci Bagaimana untuk Mengehadkan Keputusan Pertanyaan dalam JPQL/HQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!