Hibernar muestra SQL real [duplicado]
si lo configuro
<property name="show_sql">true</property>
en mi archivo de configuración hibernate.cfg.xml en la consola puedo ver el SQL.
Pero no es SQL real ... ¿Puedo ver el código SQL que se pasará directamente a la base de datos?
Ejemplo:
Veo
select this_.code from true.employee this_ where this_.code=?
Puedo ver
select employee.code from employee where employee.code=12
¿ El verdadero SQL?
¿Puedo ver (...) el SQL real?
Si desea ver el SQL enviado directamente a la base de datos (que tiene un formato similar al de su ejemplo), tendrá que usar algún tipo de proxy de controlador jdbc como P6Spy (o log4jdbc ).
Alternativamente, puede habilitar el registro de las siguientes categorías (usando un log4j.properties
archivo aquí):
log4j.logger.org.hibernate.SQL=DEBUG
log4j.logger.org.hibernate.type=TRACE
El primero es equivalente a hibernate.show_sql=true
, el segundo imprime los parámetros vinculados, entre otras cosas.
Referencia
- Documentación principal de Hibernate 3.5
- 3.5. Inicio sesión
- Documentación principal de Hibernate 4.1
- 4.1. Inicio sesión
log4j.properties
log4j.logger.org.hibernate=INFO, hb
log4j.logger.org.hibernate.SQL=DEBUG
log4j.logger.org.hibernate.type=TRACE
log4j.logger.org.hibernate.hql.ast.AST=info
log4j.logger.org.hibernate.tool.hbm2ddl=warn
log4j.logger.org.hibernate.hql=debug
log4j.logger.org.hibernate.cache=info
log4j.logger.org.hibernate.jdbc=debug
log4j.appender.hb=org.apache.log4j.ConsoleAppender
log4j.appender.hb.layout=org.apache.log4j.PatternLayout
log4j.appender.hb.layout.ConversionPattern=HibernateLog --> %d{HH:mm:ss} %-5p %c - %m%n
log4j.appender.hb.Threshold=TRACE
hibernación.cfg.xml
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="use_sql_comments">true</property>
persistencia.xml
Algunos marcos utilizan persistence.xml
:
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.use_sql_comments" value="true"/>
Si ya puede ver el SQL impreso, significa que tiene el siguiente código en su hibernate.cfg.xml:
<property name="show_sql">true</property>
Para imprimir también los parámetros de enlace, agregue lo siguiente a su archivo log4j.properties:
log4j.logger.net.sf.hibernate.type=debug