Cetak pertanyaan yang mengandungi nilai parameter dalam Hibernate
Apabila menggunakan Hibernate, selalunya perlu untuk melihat pertanyaan SQL sebenar yang dilaksanakan, termasuk nilai parameter. Tingkah laku lalai Hibernate adalah untuk melog pertanyaan SQL menggunakan tanda soal (?) sebagai ruang letak untuk nilai parameter.
Adakah mungkin untuk mencetak pertanyaan yang mengandungi nilai sebenar menggunakan API Hibernate?
Tidak, Hibernate tidak menyediakan API untuk mencetak pertanyaan SQL yang mengandungi nilai sebenar.
Cara mencetak pertanyaan yang mengandungi nilai sebenar
Untuk membolehkan ciri ini berfungsi, pengelogan perlu didayakan untuk kategori berikut:
<code>org.hibernate.SQL - 设置为debug以记录所有SQL DML语句的执行情况 org.hibernate.type - 设置为trace以记录所有JDBC参数</code>
Contoh konfigurasi Log4j:
<code># 记录SQL语句 log4j.logger.org.hibernate.SQL=debug # 记录传递给查询的JDBC参数 log4j.logger.org.hibernate.type=trace</code>
Konfigurasi pertama adalah bersamaan dengan sifat lama Hibernate hibernate.show_sql=true, dan konfigurasi kedua mencetak parameter pengikat dan maklumat lain.
Alternatif
Jika pengelogan Hibernate tidak mencukupi, anda boleh menggunakan pemacu proksi JDBC seperti P6Spy untuk menangkap dan melog pertanyaan SQL yang mengandungi nilai parameter.
Atas ialah kandungan terperinci Bagaimanakah saya boleh log pertanyaan Hibernate SQL dengan nilai parameter sebenar mereka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!