в моем hibernate.cfg.xml файле конфигурации в консоли я вижу SQL.
Но это не настоящий SQL... Могу ли я увидеть код SQL, который будет передан непосредственно в базу данных?
Пример:
Я вижу
select this_.code fromtrue.employee this_ where this_.code=?
Могу ли я увидеть
select employee.code from employee where employee.code=12
реальный SQL?
Переведено автоматически
Ответ 1
Могу ли я увидеть (...) реальный SQL
Если вы хотите видеть SQL, отправляемый непосредственно в базу данных (который отформатирован аналогично вашему примеру), вам придется использовать какой-нибудь прокси-сервер драйвера jdbc, такой как P6Spy (или log4jdbc).
В качестве альтернативы вы можете включить ведение журнала для следующих категорий (используя log4j.properties файл здесь):
Если вы уже видите печатаемый SQL, это означает, что у вас есть приведенный ниже код в вашем hibernate.cfg.xml:
<property name="show_sql">true</property>
Чтобы также распечатать параметры привязки, добавьте следующее в свой файл log4j.properties:
log4j.logger.net.sf.hibernate.type=debug
Ответ 4
Стоит отметить, что код, который вы видите, отправляется в базу данных как есть, запросы отправляются отдельно, чтобы предотвратить внедрение SQL. AFAIK The ? метки - это заполнители, которые заменяются числовыми параметрами базой данных, а не hibernate.