Wednesday, August 6, 2014

Print query string in hibernate with parameter values

You need to enable logging for the the following categories at debug and trace levels respectively:
  • org.hibernate.SQL   - Log all SQL DML statements as they are executed
  • org.hibernate.type - Log all JDBC parameters
So a log4j configuration could look like:
# logs the SQL statements
log4j.logger.org.hibernate.SQL=debug 

# Logs the JDBC parameters passed to a query
log4j.logger.org.hibernate.type=trace 
The first is equivalent to hibernate.show_sql=true legacy property, the second prints the bound parameters among other things.
Another solution (non hibernate based) would be to use a JDBC proxy driver like P6Spy.

No comments:

Post a Comment