Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Mencetak Rentetan Pertanyaan Hibernate dengan Nilai Parameter?

Bagaimanakah Saya Boleh Mencetak Rentetan Pertanyaan Hibernate dengan Nilai Parameter?

Patricia Arquette
Patricia Arquetteasal
2024-12-23 08:47:12957semak imbas

How Can I Print Hibernate Query Strings with Parameter Values?

Pencetakan Rentetan Pertanyaan Hibernate dengan Nilai Parameter

Ia selalunya berguna untuk memeriksa pertanyaan SQL yang dijana oleh Hibernate, terutamanya apabila menyelesaikan masalah. Tingkah laku lalai Hibernate adalah untuk memaparkan rentetan pertanyaan dengan tanda soal (pemegang tempat) untuk nilai parameter. Walau bagaimanapun, adalah mungkin untuk mendayakan pengelogan untuk melihat pertanyaan SQL yang dijana dengan nilai parameter sebenar.

Mendayakan Pengelogan Hibernate

Untuk mendayakan pencetakan rentetan pertanyaan dengan nilai parameter, anda perlu untuk mengkonfigurasi pengelogan Hibernate untuk yang berikut kategori:

  • org.hibernate.SQL: Tetapkan kepada nyahpepijat untuk melog semua penyataan SQL DML yang dilaksanakan.
  • org.hibernate.type: Tetapkan untuk mengesan untuk log semua parameter JDBC.

Log4j Konfigurasi

Berikut ialah contoh konfigurasi Log4j yang membolehkan pengelogan untuk kategori yang ditentukan:

# Logs the SQL statements
log4j.logger.org.hibernate.SQL=debug

# Logs the JDBC parameters passed to a query
log4j.logger.org.hibernate.type=trace

Harta Warisan Setara

Org .hibernate.SQL logger adalah bersamaan dengan legasi hibernate.show_sql=harta sebenar, yang telah ditamatkan penggunaannya.

Pemacu Proksi JDBC

Pendekatan alternatif ialah menggunakan pemacu proksi JDBC, seperti P6Spy, yang boleh tangkap dan paparkan pertanyaan SQL (termasuk nilai parameter) tanpa mengubah suai konfigurasi Hibernate.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencetak Rentetan Pertanyaan Hibernate dengan Nilai Parameter?. 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