When using Hibernate, if you log the Hibernate SQL statements, you will see this:
Hibernate: insert into student (email, first_name, last_name, id) values (?, ?, ?, ?)
However, for debugging your application, you want to see the actual parameter values in the Hibernate logs. Basically, you want to get rid of the question marks in the Hibernate logs.
You can view the actual parameters by viewing the low-level trace of the Hibernate logs. This is not set up by default. However, we can add log4j to allow us to see these low-level logs.
Here is an overview of the process:
1. Add log4j to your project classpath
2. Add log4j.properties to your “src” directory
Here are the detailed steps:
1. Add log4j to your project classpath
1a. Download log4j v1.2.17 from this link:
– http://central.maven.org/maven2/log4j/log4j/1.2.17/log4j-1.2.17.jar
1b. Copy this file to your project’s lib directory
1c. Right-click your Eclipse project and select Properties
1d. Select Build Path > Libraries > Add JARS…
1e. Select the log4j-1.2.17.jar file from the lib directory
2. Add log4j.properties to your “src” directory
2a. Copy the text from below
2b. Save this file in your “src” directory
Note: This file has an important setting:
log4j.logger.org.hibernate=TRACE
This allows you see a low-level trace of Hibernate and this allows you see the real SQL parameter values.
Now run your application. You will see a lot of low-level TRACE logs in the Eclipse Console window.
Right-click in the Eclipse Console window and select Find/Replace…
Search for: binding parameter
You will see the logs with the real parameter values. Congrats!