Menghadkan Pertanyaan dalam JPQL dan HQL
Dalam JPQL atau HQL, adalah mungkin untuk mengehadkan bilangan hasil yang dikembalikan oleh pertanyaan menggunakan kaedah setMaxResults. Walau bagaimanapun, versi lama Hibernate membenarkan pengguna menggunakan sintaks yang serupa dengan klausa LIMIT MySQL.
Sokongan untuk Had dalam Versi Lama Hibernate
Dalam Hibernate 2, ia adalah mungkin untuk melaksanakan pertanyaan had menggunakan sintaks berikut:
SELECT * FROM a_table ORDER BY a_table_column DESC LIMIT 0, 20;
Sintaks ini membenarkan pengguna untuk menentukan offset dan bilangan maksimum hasil untuk dikembalikan.
Pengalihan Keluar Sokongan Had dalam Hibernate 3
Walau bagaimanapun, dengan pengenalan Hibernate 3, Klausa LIMIT tidak lagi disokong dalam HQL. Menurut respons pada forum Hibernate, ciri ini tidak pernah dimaksudkan untuk menjadi sebahagian daripada HQL.
Menggunakan setMaxResults() untuk Result Limiting
Untuk mengehadkan bilangan daripada hasil yang dikembalikan oleh pertanyaan dalam Hibernate 3, pengguna mesti menggunakan setMaxResults kaedah:
Query query = session.createQuery("FROM ATable ORDER BY aTableColumn DESC"); query.setMaxResults(20); List<ATable> resultList = query.list();
Kaedah ini mengambil nilai integer sebagai hujah, menyatakan bilangan maksimum hasil untuk dikembalikan.
Kesimpulan
Dalam kesimpulannya, klausa LIMIT tidak disokong dalam JPQL dan HQL dalam Hibernate 3 dan versi yang lebih baru. Sebaliknya, pengguna mesti menggunakan kaedah setMaxResults untuk mengehadkan bilangan hasil yang dikembalikan oleh pertanyaan mereka.
Atas ialah kandungan terperinci Bagaimana untuk Mengehadkan Keputusan Pertanyaan dalam JPQL dan HQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!