I need to get the string from an Hibernate query and process it later (so I can't solve it with "hibernate.show_sql"
).
I have already looked at How to get SQL from Hibernate Criteria API (*not* for logging) but with that workaround I get the SQL query string but instead of showing the parameters value it shows '?'... Is there any way to get the full SQL string with the parameters values?
I mean, with that solution I get "SELECT * FROM USER WHERE NAME=? AND SURNAME=?"
but I need to get "SELECT * FROM USER WHERE NAME='John' AND SURNAME='Doe'"
...
Ideas?
You have to set TRACE
level of logging to this hibernate package and parameter binding should show in your application log:
<category name="org.hibernate.type">
<priority value="TRACE"/>
</category>
Output example:
13:58:51,505 DEBUG [SQL]
insert
into
s.audit
(action, e_s, ip, time, userid, id)
values
(?, ?, ?, ?, ?, ?)
13:58:51,505 TRACE [StringType] binding 'Modify user' to parameter: 1
13:58:51,505 TRACE [StringType] binding 'E' to parameter: 2
13:58:51,505 TRACE [StringType] binding '164.20.81.65' to parameter: 3
13:58:51,505 TRACE [TimestampType] binding '2012-07-30 13:58:51' to parameter: 4
13:58:51,505 TRACE [IntegerType] binding '158' to parameter: 5
13:58:51,505 TRACE [IntegerType] binding '8851' to parameter: 6
And don't forget 'hibernate.show_sql=true'
property you said previously to show also the related SQL.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With