Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Memilih Lajur Khusus dalam Pertanyaan Kriteria Hibernate?
Pertanyaan Kriteria Hibernate: Memilih Lajur Tertentu
Dalam Pertanyaan Kriteria Hibernate, gelagat lalai adalah untuk mendapatkan semula semua lajur daripada jadual yang ditentukan. Walau bagaimanapun, adalah mungkin untuk mengecualikan lajur tertentu daripada hasil pertanyaan untuk pengoptimuman prestasi.
Unjuran untuk Pemilihan Lajur
Untuk mengecualikan lajur daripada hasil pertanyaan, unjuran boleh digunakan. Unjuran membolehkan anda menentukan senarai sifat yang harus dikembalikan. Dengan menyenaraikan sifat yang dikehendaki secara eksplisit, lajur yang selebihnya akan dikecualikan.
Contoh Pertanyaan Kriteria
Pertimbangkan pertanyaan SQL berikut:
<code class="sql">SELECT user.id, user.name FROM user;</code>
Untuk mencapai hasil yang sama menggunakan Pertanyaan Kriteria Hibernate, seseorang boleh menggunakan kod berikut:
<code class="java">CriteriaBuilder cb = session.getCriteriaBuilder(); CriteriaQuery<Tuple> cq = cb.createTupleQuery(); Root<User> root = cq.from(User.class); cq.multiselect(root.get("id"), root.get("name"));</code>
Dalam contoh ini, cb, cq dan root ialah objek pembina yang memudahkan pembinaan pertanyaan. Kaedah multiselect() digunakan untuk menentukan lajur yang akan dikembalikan.
Mengendalikan Unjuran dalam HQL
Persamaan HQL bagi Pertanyaan Kriteria di atas adalah seperti berikut:
<code class="hql">SELECT id, name FROM User</code>
Dengan menggunakan unjuran, adalah mungkin untuk mengoptimumkan pertanyaan dan mengurangkan jumlah data yang diambil daripada pangkalan data.
Atas ialah kandungan terperinci Bagaimanakah Saya Memilih Lajur Khusus dalam Pertanyaan Kriteria Hibernate?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!