Rumah >Java >javaTutorial >Bagaimana untuk Mengehadkan Keputusan Pertanyaan dalam Hibernate 3 (tanpa menggunakan LIMIT)?
Hadkan Pertanyaan dalam JPQL atau HQL
Dalam Hibernate 3, setara dengan klausa MySQL LIMIT dalam HQL tidak tersedia secara langsung. Percubaan untuk menggunakannya dalam HQL akan mengakibatkan ralat, kerana LIMIT bukan klausa yang disokong.
Pada asalnya, fungsi ini tersedia secara tidak sengaja dalam Hibernate 2 disebabkan oleh kelainan dalam parser HQL. Ia menggantikan elemen HQL yang diiktiraf sambil membiarkan bahagian yang tidak dikenali sahaja, membenarkan pengguna menyelinap dalam pernyataan SQL asli.
Walau bagaimanapun, dalam Hibernate 3, penghurai HQL telah dipertingkatkan dengan ketara dan menggunakan AST (pokok sintaks abstrak). Pelaksanaan penghuraian yang ketat ini secara eksplisit tidak membenarkan klausa yang tidak disokong seperti LIMIT.
Oleh itu, pendekatan yang disyorkan untuk mengehadkan hasil pertanyaan dalam Hibernate 3 ialah menggunakan kaedah setMaxResults() pada objek Pertanyaan. Pilihan ini menyediakan kawalan ke atas bilangan maksimum hasil yang dikembalikan oleh pertanyaan, dengan berkesan mencapai kefungsian yang sama seperti klausa LIMIT.
Atas ialah kandungan terperinci Bagaimana untuk Mengehadkan Keputusan Pertanyaan dalam Hibernate 3 (tanpa menggunakan LIMIT)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!