Al contrario de lo que está escrito aquí, no he encontrado una respuesta a esta pregunta allí: Imprimir cadena de consulta en hibernación con valores de parámetros.
– Nicolás Barbulesco
3 de septiembre de 2013 a las 8:30
@NicolasBarbulesco La versión con los signos de interrogación es el SQL real. Todos los controladores JDBC pueden aceptar consultas en este formato. Bajo el capó, el controlador JDBC puede reformatear la consulta para que coincida con el formato de marcador de posición nativo de la base de datos (por ejemplo, Oracle y PostgreSQL reemplazarán ? con :1, :2, etc.), y en algunos casos específicos puede reemplazar los marcadores de posición de enlace con valores escapados (algunos controladores de MySQL hacen esto). Sin embargo, la mayoría de las bases de datos son capaces de manejar consultas con marcadores de posición de forma nativa.
– James_pic
21 de enero de 2015 a las 13:58
pascal ladrón
¿Puedo ver (…) el SQL real?
Si desea ver el SQL enviado directamente a la base de datos (que está formateado similar a su ejemplo), tendrá que usar algún tipo de proxy de controlador jdbc como P6Espía (o log4jdbc).
Alternativamente, puede habilitar el registro de las siguientes categorías (usando un log4j.properties archivo aquí):
Me gusta P6Spy, especialmente cuando ejecuto pruebas unitarias, porque también le dará el conjunto de resultados de su consulta además de los valores de los parámetros de vinculación.
– elduff
29 de marzo de 2010 a las 16:59
¿Puedes publicar el ejemplo de salida de registro?
– Scarlett
15 de marzo de 2012 a las 8:13
@Pascal, no creo que debas decir “Si quieres verlo formateado exactamente como en tu ejemplo” porque depende en gran medida de la base de datos que esté usando y si hibernate elige procesar por lotes/preparar la declaración.
– Adam Gent
2 de enero de 2013 a las 21:24
Habilitando el org.hibernate.type categoría no funcionó para mí, pero habilitar la org.hibernate.loader.hql en cambio, la categoría funcionó.
–Emil Lundberg
13 de febrero de 2015 a las 16:05
Es posible que deba decirle a Hibernate qué administrador de registro usa (log4j, slf4j), vea cómo.
¿Hay alguna manera de que podamos obtener información sobre los parámetros de vinculación en los registros?
– Raquel
24 de enero de 2012 a las 18:53
@Rachel, ¿qué más que iniciar sesión como TRACE [BasicBinder] binding parameter [1] as [VARCHAR] - john doe ¿necesitas?
– Arjan
8 de diciembre de 2012 a las 12:52
¡¡No trabajes en Hibernate 4.3!!
– reznic
15 de octubre de 2014 a las 9:18
si agregas org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl puede deducir los valores límite de la Releasing statement– o Closing prepared statement-líneas (al menos con H2)
– El Constructor
6 mayo 2015 a las 13:50
@Arjan Tener los parámetros enumerados por separado realmente no es muy útil. Parte de la razón por la que querría impresiones SQL como esta es para poder ejecutar las declaraciones yo mismo y ver qué está pasando. Tener que extraer e insertar parámetros a mano es simplemente torpe. Es una pena que no haya una forma más simplificada de imprimirlos.
– Amalgovino
5 oct 2015 a las 19:49
Si ya puede ver que se imprime el SQL, eso 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 vinculación, agregue lo siguiente a su archivo log4j.properties:
log4j.logger.net.sf.hibernate.type=debug
esto se aplica solo a la versión de hibernación <3.0, ¿verdad?
– Jolly1234
20 mayo 2015 a las 19:13
@Brian: ¿debo ingresar y appenderRef?
– Karen Goh
7 de septiembre de 2017 a las 4:28
Vale la pena señalar que el código que ve se envía a la base de datos tal cual, las consultas se envían por separado para evitar la inyección de SQL. AFAIK El? Las marcas son marcadores de posición que son reemplazados por los parámetros numéricos por la base de datos, no por hibernación.
select this_.code from true.employee this_ where this_.code=?es lo que se enviará a su base de datos.
this_ es un alias para esa instancia del employee mesa.
El problema no es el Esto sino el ?
–David Anderson
18 de abril de 2014 a las 15:02
El problema no es el Esto sino el ?
–David Anderson
18 de abril de 2014 a las 15:02
¿Ha sido útil esta solución?
Tu feedback nos ayuda a saber si la solución es correcta y está funcionando. De esta manera podemos revisar y corregir el contenido.
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Configurar y más información
Hibernate usa declaraciones preparadas internamente, por lo que nunca tiene el SQL en un formato en el que los valores estarían incrustados.
– Narayan
29 de marzo de 2010 a las 9:20
¿De verdad dice
true.employee
?– Stephen Denné
29 de marzo de 2010 a las 9:50
la única solución de trabajo que he encontrado está aquí: mkyong.com/hibernate/…
– Christian Acilli
23 de enero de 2013 a las 17:10
Al contrario de lo que está escrito aquí, no he encontrado una respuesta a esta pregunta allí: Imprimir cadena de consulta en hibernación con valores de parámetros.
– Nicolás Barbulesco
3 de septiembre de 2013 a las 8:30
@NicolasBarbulesco La versión con los signos de interrogación es el SQL real. Todos los controladores JDBC pueden aceptar consultas en este formato. Bajo el capó, el controlador JDBC puede reformatear la consulta para que coincida con el formato de marcador de posición nativo de la base de datos (por ejemplo, Oracle y PostgreSQL reemplazarán
?
con:1
,:2
, etc.), y en algunos casos específicos puede reemplazar los marcadores de posición de enlace con valores escapados (algunos controladores de MySQL hacen esto). Sin embargo, la mayoría de las bases de datos son capaces de manejar consultas con marcadores de posición de forma nativa.– James_pic
21 de enero de 2015 a las 13:58