Apabila menggunakan Hibernate, selalunya berguna untuk melihat pertanyaan SQL yang dilaksanakan, terutamanya apabila menyahpepijat atau mengoptimumkan prestasi. Walau bagaimanapun, secara lalai, Hibernate merekodkan pernyataan SQL menggunakan ruang letak (tanda soal) dan bukannya nilai sebenar parameter pertanyaan.
Jika anda perlu mencetak pertanyaan yang mengandungi nilai sebenar, anda boleh mengkonfigurasi kategori pengelogan berikut:
Contohnya, menggunakan konfigurasi log4j:
<code># 记录SQL语句 log4j.logger.org.hibernate.SQL=debug # 记录传递给查询的JDBC参数 log4j.logger.org.hibernate.type=trace </code>
Tetapan pertama (org.hibernate.SQL) adalah bersamaan dengan menetapkan sifat warisan hibernate.show_sql=true. Tetapan kedua (org.hibernate.type) mencetak parameter mengikat dan maklumat lain.
Cara lain untuk mencetak pertanyaan yang mengandungi nilai sebenar ialah menggunakan pemacu proksi JDBC seperti P6Spy. Pemacu ini memintas semua pernyataan SQL dan log maklumat dengan maklumat terperinci, termasuk nilai sebenar parameter pertanyaan.
Atas ialah kandungan terperinci Bagaimana untuk Log Pertanyaan SQL Terperinci dengan Nilai Parameter dalam Hibernate?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!