Bagaimanakah Saya Boleh Mengecualikan Lajur daripada Pertanyaan Kriteria Hibernate?

Mary-Kate Olsen
Lepaskan: 2024-10-28 04:42:30
asal
141 orang telah melayarinya

How Can I Exclude Columns from a Hibernate Criteria Query?

Pertanyaan Kriteria Hibernate untuk Memilih Lajur Tertentu

Dalam Hibernate, Pertanyaan Kriteria secara lalai mengambil semula semua lajur daripada pangkalan data. Walau bagaimanapun, dalam sesetengah kes, anda mungkin mahu mengecualikan lajur tertentu untuk meningkatkan prestasi atau memenuhi keperluan khusus.

Menggunakan Unjuran untuk Mengecualikan Lajur

Untuk mengecualikan lajur tertentu daripada Pertanyaan Kriteria, anda boleh menggunakan kaedah Projections.projectionList(). Kaedah ini membenarkan anda untuk menentukan hanya lajur yang dikehendaki dalam unjuran.

Contoh:

Andaikan anda mempunyai pertanyaan yang mendapatkan semula semua lajur daripada jadual "Pengguna". Untuk mengecualikan lajur "umur" daripada pertanyaan, anda boleh menggunakan kod berikut:

<code class="java">Criteria cr = session.createCriteria(User.class)
    .setProjection(Projections.projectionList()
      .add(Projections.property("id"), "id")
      .add(Projections.property("name"), "name"))
    .setResultTransformer(Transformers.aliasToBean(User.class));</code>
Salin selepas log masuk

Mengendalikan Ralat Pertanyaan

Apabila menggunakan unjuran, anda mungkin menghadapi ralat jika anda merujuk kepada lajur yang dikecualikan dalam klausa where atau bahagian lain pertanyaan. Untuk menyelesaikan isu ini, anda boleh menyatakan secara eksplisit alias yang diberikan kepada lajur yang diunjurkan.

Contoh:

<code class="java">Criteria cr = session.createCriteria(User.class)
    .setProjection(Projections.projectionList()
      .add(Projections.property("id"), "user_id")
      .add(Projections.property("name"), "user_name"))
    .setResultTransformer(Transformers.aliasToBean(User.class))
    .add(Restrictions.gt("user_id", 10));</code>
Salin selepas log masuk

Dalam pertanyaan ini, "id" dan " name" lajur diunjurkan dan diberikan kepada alias "user_id" dan "user_name" masing-masing. Klausa where kemudian merujuk kepada alias ini, mengelakkan ralat yang boleh berlaku dengan merujuk nama lajur asal.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengecualikan Lajur daripada 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!