Bagaimanakah Saya Memilih Lajur Khusus dalam Pertanyaan Kriteria Hibernate?

Mary-Kate Olsen
Lepaskan: 2024-10-26 08:29:30
asal
723 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!