Hibernar muestra SQL real [duplicado]

Resuelto Tommaso Taruffi asked hace 14 años • 5 respuestas

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?

Tommaso Taruffi avatar Mar 29 '10 16:03 Tommaso Taruffi
Aceptado

¿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.propertiesarchivo 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
Pascal Thivent avatar Mar 29 '2010 09:03 Pascal Thivent

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"/>
Tommaso Taruffi avatar Mar 29 '2010 15:03 Tommaso Taruffi

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
Brian Riehman avatar Mar 29 '2010 12:03 Brian Riehman