Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Memilih Lajur Khusus dalam Pertanyaan Kriteria Hibernate?

Bagaimanakah Saya Memilih Lajur Khusus dalam Pertanyaan Kriteria Hibernate?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-26 08:29:30807semak imbas

How Do I Select Specific Columns in Hibernate Criteria Queries?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn